2016-04-11 12 views
1

Ich verwende org.apache.commons.net.ftp.FTPSClient zum Senden von Dateien an einen anderen Server. Aber das Programm hängt nachFTPSClient hängt auf storeFile - Datei gesendet kommt mit Null-Bytes

boolean stored = client.storeFile(fileName, is); 

Die Datei wird gesendet, aber auf dem Server hat es null Bytes.

Ich habe versucht, die gleiche Datei an den gleichen Server mit Filezilla zu senden und es wird ohne Probleme übertragen, so glaube ich nicht, dass dies ein Firewall-Problem ist.

Ich stellte auch sicher, dass meine InputStream liest die Datei durch Ausdrucken ihres Inhalts.

Hier ist mein Code:

FTPSClient client = new FTPSClient(); 
InputStream is = null; 

client.connect(AppValues.ftpurl); 
client.login(AppValues.ftpname, AppValues.ftppass); 
is = new FileInputStream("C:\\Users\\path\\filename"); 
boolean stored = client.storeFile(fileName, is); 
System.out.println("Stored? " + stored); 

Der gespeicherte Ausdruck nie genannt wird, und die Datei kommt mit Null-Bytes.

Was fehlt mir?

Antwort

1
FTPClient client = = new FTPClient(); 
InputStream is = null; 
client.connect(AppValues.ftpurl); 
client.login(AppValues.ftpname, AppValues.ftppass); 
client.setFileType(FTP.BINARY_FILE_TYPE); 
client.enterLocalPassiveMode(); 
is = new FileInputStream("C:\\Users\\path\\filename"); 
boolean stored = client.storeFile(fileName, is); 
System.out.println("Stored? " + stored); 
+0

Ich benutze Version 3.3. – Eddy

+0

neuer FileInputStream ("C: \\ Benutzer \ Pfad \ Dateiname"); ist Ihr Pfad korrekt? –

+0

Wie ich in der Post gesagt habe, habe ich sichergestellt, dass die Datei gelesen wird. Also ja. – Eddy