2017-10-17 4 views
-1

Ich versuche, ein Bild von einem Samsung auf einen FTP-Server mit dem Apache FTPClient hochladen. Aber es scheint nicht zu funktionieren. Ich weiß nicht warum, der Code ist in Ordnung. Ich versuche ein Bild zu wählen, um es auf den Server zu laden, die selectedImage Variable ist der komplette Pfad der Bilddatei. FTP-Upload funktioniert nicht Android

FTPClient ftpClient = new FTPClient(); 
ftpClient.connect(InetAddress.getByName("ftpserver")); 
ftpClient.login("user", "password"); 
ftpClient.setFileType(FTP.BINARY_FILE_TYPE); 

FileInputStream buffIn = null; 
buffIn = new FileInputStream(new File(getRealPathFromURI(selectedImage))); 
ftpClient.enterLocalPassiveMode(); 
link = "http://ftpname/home/user/public_html/image/ayri.jpg"; 
ftpClient.storeFile(link, buffIn); 
buffIn.close(); 
ftpClient.logout(); 
ftpClient.disconnect(); 

Antwort

0

Also habe ich mir die Antwort gefunden, für diejenigen von Ihnen, dieses Problem begegnen, zuerst für POST oder HOCHLADEN Dateien, verwenden Sie immer Asynctask, wenn nicht, wird es nie funktionieren. Und überprüfen Sie einfach, ob Sie in Ihrer Anwendung die Berechtigung zur Dateiverwaltung haben, können Sie in den Einstellungen sehen -> Anwendung -> Ihre App -> Berechtigung -> Speicherprüfung ja. Und das ist es.

Vielen Dank stackoverflow für die Hilfe!

0

Das erste Argument ist ein FTPClient.storeFilePfad zu den hochgeladenen Daten zu, keine HTTP URL zum Speichern von Dateien.

Dieser Pfad hängt davon ab, wie der FTP-Server konfiguriert ist.

Es kann ein absoluter Pfad wie:

verschiedene
link = "/public_html/image/ayri.jpg"; 

Oder etwas ganz:

link = "/home/user/public_html/image/ayri.jpg"; 

Oder wenn das user Konto chrooted ist, es sein kann. Siehe How to get HTTP URL of file uploaded to FTP server (ein umgekehrtes Problem, aber die Antwort wird Ihnen trotzdem eine Idee geben).

(In jedem Fall offensichtlich der Name der Variablen link falsch ist, sollte es path sein.)

+0

Ich habe wieder mit einem Problem konfrontiert, die Sache ist, dass die Anwendung eine Verbindung zum FTP-Server herstellen kann, aber nichts darauf speichern kann. Ich versuche, den Pfad der Bilddatei zu ändern, aber es funktioniert nicht, ich bin komplett verloren –

+0

Können Sie sich auf dem Server mit einigen GUI-FTP-Client, wie WinSCP anmelden? Welchen Pfad sehen Sie im Dateifenster, nachdem Sie eine Verbindung hergestellt haben? –

+0

Ja, ich kann, ich benutze Filezilla. Ich habe wirklich ein großes Problem mit POST und FILE mit Android, es kann einfach nicht funktionieren –