ftp commands in java

Status
Niet open voor verdere reacties.

jgieskes

Gebruiker
Lid geworden
6 jan 2010
Berichten
6
Hallo,

Ik wil een java script in een eenvoudige html pagina maken die het volgende doet:
- vraag gebruiker om zijn gebruikersnaam en wachtwoord van de ftp server.
- zet een ftp sessie op
- schakel over naar bin
- upload bestand
- beeindig ftp sessie

Op de command line in dos is dit redelijk eenvoudig, maar ik loop in java tegen een aantal problemen aan.
Welke java code moet ik gebruiken om ftp commando's te versturen?

Ik gebruik nu de volgende functie in de header om in te loggen, waarbij ik de klant dus vraag om gebruikersnaam, wachtwoord en server.
<!-- Begin
function Login(form) {
var username = form.username.value;
var password = form.password.value;
var server = form.server.value;
if (username && password && server) {
var ftpsite = "ftp://" + username + ":" + password + "@" + server;
window.location = ftpsite;
}
else {
alert("Please enter your username, password, and FTP server's address.");
}

}
// End -->
 
Welke java code moet ik gebruiken om ftp commando's te versturen?
Javascript kan niets anders, dan dingen op de huidige pagina doen. Zoals bijvoorbeeld een element groen maken als je er met je muis overheen gaat, of een alert geven. Javascript kan dus op geen enkele manier* iets met FTP doen, behalve de gebruiker naar een ftp://-locatie sturen (zoals in jou script, via window.location).


:thumb:




* in principe kan je een socket-connectie maken naar de ftp-server, en via deze commando's sturen. 'Helaas' (mischien maar goed ook) heeft Javascript geen sockets, maar er zijn er verschillende oplossingen hiervoor.
 
Hoi Vegras,

bedankt voor je uitleg, helder.

Heb je nog suggesties voor mij om iets dergelijks te maken. Wat mijn uiteindelijke doel is om de gebruiker enkel zijn loginnaam en wachtwoord te vragen en dat de rest, na een druk op de knop, vanzelf gaat.

Ik was op html gekomen omdat ik de gebruiker wat tekst en uitleg wil geven, maar daarachter moet natuurlijk nog de logica komen. Wat kan ik hiervoor het beste gebruiken dan. De voorwaarde is dat het op elke pc (zowel windows 32 bits als mac) moet werken.

Hopelijk kan je me verder helpen.
 
De voorwaarde is dat het op elke pc (zowel windows 32 bits als mac) moet werken.
het gaat er niet echt om op welk soort OS (desnoods linux) het werkt, maar eerder op welke browser. Zoals ik al eerder zei, javascript kan niets buiten de browser doen, dus of je nou Firefox op een Win machine of op een -X machine (linux/unix) of mac hebt, maakt meestal niet zoveel uit. Het gaat erom wat de browsers ondersteunen.

Ik weet nu al heel zeker dat dit een project is dat in Javascript wel mogelijk is, maar niet handig danwel haalbaar (herinner dat Javascript niet gemaakt is voor dit soort dingen, maar om 'kleurtjes van elementen te veranderen').

Echter, ik vermoed dat PHP (ook browser-based, maar dan aan de server-side) dit wel kan. Ik raad je aan hier eens rond te snuffelen.



:thumb:



ps. Ovegens kan je wel tussen javascript/php communiceren, dus deels javascript en deels php is zeer goed mogelijk​
 
Hoi Vegras,

Soory dat ik niet helemaal duidelijk ben geweest. Maar het is mij helder dat ik mijn doel niet ga bereiken met java script.

Zelf heb ik ook zitten denken aan php, alleen om php te kunnen draaien moet php op de pc (client-side) zijn geinstalleerd, toch?
Wat namelijk het geval zal zijn is dat de ftp sessie met een modem wordt opgebouwd om hierop leuke dingen te doen. Er wordt dus geen connectie met een server gemaakt waar ik eventueel het nodige op kan installeren. Is het dan nog steeds mogelijk om php in combi met html en java te gebruiken?
 
php draait volledig op de server; zoals deze helpmij-site. Elke keer dat je naar deze pagina gaat, ziet de server dat je een bepaald iets wilt (bv: check de url-balk, daar zie je /forum/iets.php?iets=ietsanders staan). Deze leest de waardes, en maakt de correcte HTML pagina daarbij aan.


Ik volg nog niet precies wat je nu wilt doen. Een ftp-connectie gaat een verbinding aan naar een FTP-server, toch? Het idee (het php-idee) is om het dan via een server te doen. Check mn plaatje eens (bijlage) (vergeef mijn paint-skills :p)


Ik vind het wel een leuke uitdaging om het eens in Javascript te proberen (via sockets, hoe weet ik nog niet precies). Ik ga straks even *****n, dus je hoort wel van me.



:thumb:
 

Bijlagen

  • phpjsftpsocketding.png
    phpjsftpsocketding.png
    10,6 KB · Weergaven: 53
Je hebt geluk, het is me gelukt om een simpel FTP-commando via Javascript naar een server te sturen. Check de bijlage maar. Ik maakte een connectie naar mn eigen ftp, ftp.that-guy.net. Het username en password heb ik even weggehaald voor de obvious redenen.

In dit geval maak ik via Javascript direct een connectie naar de FTP-server (nouwja, via sockets). Dat was toch de bedoeling?

Kan je nu nog een keer uitleggen wat het precies moet kunnen?


:thumb:
 

Bijlagen

  • ftpinJS.JPG
    ftpinJS.JPG
    26,1 KB · Weergaven: 64
Laatst bewerkt:
Ha, goed nieuws.

Wat ie moet doen na dat er connect is is het volgende:

bin
ha
put <filename>
bye
 
Okay, maar het is toch iets ingewikkelder dan dat ;)

er zijn geen 'standaard' commando's zoals ha en bye; het moet allemaal 'in het echt' geprogrammeerd worden. Wat doet het ha commando precies?


Nu, dit valt best mee, in theorie:
*** connect ***
USER username
PASS password

PASV *** schakel over naar passive mode ***

TYPE I *** image type (niet ascii dus) ***

STOR bestand.test *** upload bestand ***


*** disconnect van server ***
het enige is dat ik nog even moet uitvogelen hoe ik precies een bestand kan uploaden (noot: javascript kan geen bestanden lezen! Tenminste, niet 'echt')
 
het 'ha'-commando laat allemaal '#' zien op het scherm.

hash - Toggles hash-sign (#) printing for each data block transferred
 
Aha, okay. Nu, ik heb verder lopen *****n, maar ik loop tegen een probleempje aan.

Als je via FTP een bestand upload, gebruik je STOR. Echter, het enige wat je aan stor meegeeft is de filename. De data van deze file wordt via een andere poort naar de FTP server doorgestuurd. Deze 'verkrijg' je door PASV te gebruiken. Je krijgt dan van de server zoiets terug:
227 Entering Passive Mode (62,93,239,113,176,114).
met wat gekloot en wiskunde, verkrijg je het ip (meestal zelfde als initiele ftp-server) en port (die dus anders is).

Echter, als ik data via deze andere poort verstuur werkt het niet. Ik weet nog niet waarom. FTP ziet echter wel dat er een bestand geupload is, dus staat er een leeg bestand (met goede filename) op de server.

Heeft iemand een idee hoe dit werkt? Ik kon vannochtend toen ik eraan begon nog helemaal geen FTP, maar nu begint het wel een beetje te komen ;)



:thumb:
 
Laatst bewerkt:
jgieskes,

Ik heb nog even lopen proberen, maar het is me nogsteeds niet gelukt om een file te kunnen uploaden naar een ftp-server.

Mocht je toch verder willen, raad ik je toch aan om een ander soort taal te gebruiken. Mischien toch php, of zelfs Java (java-applet).


:thumb:
 
Zo'n vermoeden had ik al, maar wel erg tof dat je het zo uitgebeird bent gaan onderzoeken
:thumb:
Ik ga me maar eens verdiepen in java applet, veel software installatie scripts zijn daarin geschreven.
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan