I want to transfer a file to a ftp server wich use explicite TLS/SSL. When I connect with File Zilla and choose as servertype: FTPES - FTP over explicite TLS/SSL i can connect and upload files.
I try to upload some files to a ftp server with explicite TLS. My code work until the it upload the files. It throws an IOException. The last response from the server (getReplyStrings()) is [150 Accepted data connection] In the upload folder it generates a empty file. I have no access to the FTP log on the server. FTPSClient ftp = new FTPSClient("TLS",false); ftp.setTrustManager(TrustManagerUtils.getAcceptAllTrustManager()); KeyManagerFactory kmf = null; try { kmf = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm()); kmf.init(null, null); KeyManager km = kmf.getKeyManagers()[0]; ftp.setKeyManager(km); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } catch (UnrecoverableKeyException e) { e.printStackTrace(); } catch (KeyStoreException e) { e.printStackTrace(); } ftp.setBufferSize(1024 * 1024); ftp.setConnectTimeout(100000); try { ftp.connect("domain.com"); ftp.setSoTimeout(1000000); if (ftp.login("login", "passsword")) { ftp.execPBSZ(0); ftp.execPROT("P"); ftp.changeWorkingDirectory("/"); if (ftp.getReplyString().contains("250")) { ftp.setFileType(FTP.BINARY_FILE_TYPE); ftp.enterLocalPassiveMode(); BufferedInputStream buffIn; for(File file : files) { Log.d("DEBUG","Uploading: " + file.getPath()); buffIn = new BufferedInputStream(new FileInputStream(file.getAbsolutePath())); boolean result = ftp.storeFile(file.getName(), buffIn); buffIn.close(); } } ftp.logout(); } ftp.disconnect(); } catch (IOException e) { System.out.println(Arrays.toString(ftp.getReplyStrings())); System.out.println(e); Log.d("DEBUG", Arrays.toString(e.getStackTrace())); } This are the last lines from logcat: 09-14 19:54:01.821 18538-18571/com.google.observer D/DEBUG: Uploading: /storage/emulated/0/temp/1_20160709_162505.jpg.jpg09-14 19:54:02.871 18538-18571/com.google.observer I/System.out: [150 Accepted data connection]09-14 19:54:02.871 18538-18571/com.google.observer I/System.out: javax.net.ssl.SSLException: Write error: ssl=0x7f9d8c6200: I/O error during system call, Broken pipe09-14 19:54:02.881 18538-18571/com.google.observer D/DEBUG: [com.android.org.conscrypt.NativeCrypto.SSL_write(Native Method), com.android.org.conscrypt.OpenSSLSocketImpl$SSLOutputStream.write(OpenSSLSocketImpl.java:877), java.io.BufferedOutputStream.flushInternal(BufferedOutputStream.java:185), java.io.BufferedOutputStream.flush(BufferedOutputStream.java:85), java.io.FilterOutputStream.close(FilterOutputStream.java:61), java.io.BufferedOutputStream.close(BufferedOutputStream.java:152), org.apache.commons.net.ftp.FTPClient._storeFile(FTPClient.java:666), org.apache.commons.net.ftp.FTPClient.__storeFile(FTPClient.java:624), org.apache.commons.net.ftp.FTPClient.storeFile(FTPClient.java:1976), com.google.observer.Ftp.upload(Ftp.java:66), com.google.observer.MainActivity$1.run(MainActivity.java:30)] -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To unsubscribe from this group and stop receiving emails from it, send an email to android-developers+unsubscr...@googlegroups.com. To post to this group, send email to android-developers@googlegroups.com. Visit this group at https://groups.google.com/group/android-developers. To view this discussion on the web visit https://groups.google.com/d/msgid/android-developers/c00cd6fa-d64e-48ff-b2cb-01a81f9a4bb2%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.