Zum Inhalt springen

Datei auf FTP Server schreiben


Empfohlene Beiträge

Geschrieben

Hi Leute,

ich habe folgendes Problem: Ich will auf einen FTP Server (für den man kein Benutzernamen/Passwort braucht) eine Textdatei schreiben, der Inhalt der Textdatei steht in einer anderen Datei die ich schon mit´dem FileReader geöffnet habe, so weit so gut.

// myOutputFile = new File("ftp:\hdhcrm01:0021\\crmcatalog\\test.txt"); //

in dieser Zeile liegt das Problem, wenn ich es so mache, dann hängt er mir an den FTP pfad noch : C:\blabla\jbuilder\project\blablaba vorne an.

hat jemand ne Idee?

MFG

Nyle:confused:

Geschrieben

Hallo Nyle,

so einfach funktioniert das mit FTP und Java leider nicht. Die Dateifunktionen von Java sind nicht darauf ausgelegt mit Dateien zu arbeiten, auf die über einen FTP-Server zugegriffen werden muss.

Es gibt allerdings einige Java-Beans die FTP-Funktionalitäten bieten.

Zum Beispiel hier:

http://www.geocities.com/SiliconValley/Code/9129/javabean/ftpbean/

http://www.savarese.org/oro/downloads/index.html

Hoffe das hilft.

derflix

Geschrieben

Hi

Das ist nicht ganz richtig, eine FTP-Anbindung ist mit Java sehr einfach !

Es gibt ein Java-Bean mit dessen Hilfe man einen eigenen FTP-Client entwickeln kann und somit Dateien auf Server laden oder eben herunterladen kann ! ! !

Einfach mal bei Java.sun.com suchen, da gibt es sowas (habe es selbst schon in einem Projekt genutzt)

Gruß Erbeere

Geschrieben

hi ihr!

hab da noch ne kleine frage.

Muss ich irgenwas dabei beachten, wenn ich den servernamen in nem string abspeichere?

Mit

ftpClient.openServer(server);

öffne ich ja den Server, den ich im String server angeben habe.

Er gibt mir dann aber ne I/O Exception.

mein string sieht so aus:

String server="ftp://hdhcrm01/crmcatalog/";

irgendwelche tips?

wäre super!

Geschrieben

Hi

Ich kann mich nicht genau erinnern aber ich glaube dass das so nicht geht

Vermutlich musst Du den FTP-Server erstmal mit dem Namen / IP öffnen und dann in das entsprechende Verzeichnis wechseln

Also gib in der Funktion mal nur den Namen des Servers an !

Gruß Erbeere

Geschrieben

erstmal danke, das hat jetzt geklappt, aber nun habe ich schon wieder ein Problem,(jaja ich weiß ;)

irgendwie will der die Datei nicht annehmen..

bzw. nicht schreiben..

hier ist mal mein code:

public class Test extends Object

{

public static void main(String[] args)

{

// eine Variable definieren, welche einen Integer aufnimmt

int i;

// eine Variable definieren, welche ein Objekt der Klasse String aufnimmt

// String mySourceFileName = "c:\\winzip.log";

// eine Variable definieren, welche ein Objekt der Klasse FileReader aufnimmt

FileReader myFileReaderObject = null;

// eine Variable definieren, welche ein Objekt der Klasse FileWriter aufnimmt

FileWriter myFileWriterObject;

// eine Variable definieren, welche ein Objekt der Klasse File aufnimmt

File myOutputFile = null;

// Variablen für den FTP Zugang anlegen

String server="10.128.17.228";

String user="anonymous";

String password="fantbert@hotmail.com";

String path="/crmcatalog";

String filename="winzip.log";

int c,d;

try

{

// ein Objekt der Klasse FileReader erzeugen

//myFileReaderObject = new FileReader( mySourceFileName );

// Hier legen wir fest, wie die Ausgabedatei heissen soll

//myOutputFile = new File("c:\\zwischendatei.txt");

// Hier weisen wir dem FileWriterObject zu wo er den Ausgabestrom hinleiten soll

//myFileWriterObject = new FileWriter(myOutputFile);

// Die FTP Funktionen initialisieren

FtpClient ftpClient=new FtpClient();

ftpClient.openServer(server);

ftpClient.login(user, password);

if (path.length()!=0) ftpClient.cd(path);

ftpClient.binary();

TelnetOutputStream os=ftpClient.put(filename);

File file_in=new File(filename);

// An dieser Stelle tritt der Fehler auf:

FileInputStream is=new FileInputStream(file_in);

byte[] bytes=new byte[1024];

while ((c = is.read(bytes)) != -1) {

//myFileWriterObject.write((char)c);

os.write(bytes,0,c);

is.close();

os.close();

ftpClient.closeServer();

}

//myFileReaderObject.close();

// myFileWriterObject.close();

} catch (IOException ex) {

System.out.println("Fehler beim Lesen der Datei");

}

}

/**Das Applet konstruieren*/

public Test()

{

}

}

Geschrieben

Zu Deiner Frage mit dem String:

Es sollte kein Problem sein direkt den Hostnamen anzugeben, dieser sollte automatisch in die IP-Adresse aufgelöst werden.

Allerdings ist das Format "ftp://hdhcrm01/crmcatalog/" so nicht richtig.

Da der FTP-Klasse ja schon klar ist dass mit einem FTP-Server eine Verbindung aufgebaut werden soll ist die Angabe des Protokolls unnötig. Das benötigt man z.B. bei einem Browser, der ja auch z.B. http als Protokoll kennt.

Wenn Du also den Hostnamen in der Form "www.irgendwas.de" angibst sollte es schon funktionieren. Verzeichnisse dürfen nicht mit angegeben werden.

Nach dem Login kannst Du aber per chdir in das entsprechende Verzeichnis wechseln.

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...