Ciao a tutti, ho un problema :
un programma distribuito a vari utenti che si collega via FTP ad un server.
Non mi ha mai dato problemi fino ad oggi
MI collego in due modi al server :
1- con libreria : org.apache.commons.net.ftp.FTPClient
Questo metodo non da errori
2- Con la libreria apache ho problemi a scaricare file zip, quindi li scarico con :codice:FTPClient ftp = new FTPClient(); ftp.enterLocalPassiveMode(); ftp.connect(server, 21); boolean con = ftp.login(username, password); String fileServer = "file.dat"; if (!dirFtp.equals("null")) { boolean dirCambia = ftp.changeWorkingDirectory(dirFtp); } lfile = new FileOutputStream("file.dat"); boolean c = ftp.retrieveFile(fileServer, lfile); lfile.close(); ftp.disconnect();
il secondo metodo mi da (solo su un utente, non era mai successo) errore :codice:BufferedInputStream bis = null; URL url; url = new URL(url + dir + "file.zip;type=i"); bis = new BufferedInputStream(url.openStream()); BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("file.zip"), 4096); byte[] data = new byte[4096]; int count; int val = 0; int dim = 0; while ((count = bis.read(data, 0, 4096)) != -1) { bos.write(data, 0, count); } bis.close(); bos.flush();
ERRORE : IOException
ERRORE : sun.net.ftp.FtpProtocolException: PORT :500 Illegal PORT command, EPSV ALL in effect
Mi blocca solo il secondo metodo e lascia tranquillamente connettersi con apache ?
Sembra che usino 2 porte diverse ?
Non dovrebbe essere standard la 21 per le connessioni ftp?
Qualcuno saprebbe darmi una spiegazione, o qualche documento per capire perchè apache va in errore a scaricare zip
Grazie.

Rispondi quotando