Não vou dizer muita bobagem, vou apenas postar o código para você. O código específico é o seguinte:
// Faça upload de arquivo public static boolean uploadtoftp (string url, porta int, string nome de usuário, senha de string, string path, string filename, inputStream entrada) {boolean suced = false; FtpClient ftp = new ftpClient (); // org.apache.commons.net.ftp try {if (porta> -1) {ftp.connect (url, porta); } else {ftp.connect (url); // a porta padrão do FTP é 21} // Muitas pessoas escrevem para usar ftp.getReplyCode () para obter o valor de retorno da conexão, mas isso fará com que o storeFilestream retorne a NULL se (ftp.Login (Username, senha)) ftp.setFileType (ftpClient.binary_file_type); // Crie um diretório, se existir, ele não fará retornar FTP.Makedirectory (Path); // Alterne o diretório ftp.ChangeWorkingDirectory (caminho); // Carregar o arquivo // O protocolo FTP estipula que o formato de codificação do arquivo é ISO-8859-1 FileName = new String (FileName.getBytes ("GBK"), "ISO-8859-1"); OutputStream out = ftp.StoreFileStream (nome do arquivo); byte [] bytearray = novo byte [4096]; int read = 0; while ((read = input.read (byteArray))! =-1) {out.write (bytearray, 0, leia); } out.close (); ftp.logout (); sucesso = true; }} catch (Exceção e) {} finalmente {if (ftp.isconnected ()) {ftp.disconnecct (); }}} // File Download public estático boolean DownloadFromftp (String URL, INT PORT, String UserName, String Senha, String Path, String LocalPath) {Boolean Success = false; FtpClient ftp = new ftpClient (); // org.apache.commons.net.ftp try {int reply; if (porta> -1) {ftp.connect (url, porta); } else {ftp.connect (url); // a porta padrão do FTP é 21} // Muitas pessoas escrevem para usar ftp.getReplyCode () para obter o valor de retorno da conexão, mas isso fará com que o storeFilestream retorne a NULL ftp.login (nome de usuário, senha) ftp.setFileType (ftpClient.binary_file_type); resposta = ftp.getReplyCode (); if (! ftPreply.ISPIPIÇÃO COMPLETION (Responder)) {ftp.disconnect (); Retornar o sucesso; s} // Alterne o diretório aqui, se a comutação falhar, significa que não há caminho no ftp.ChangeWorkingDirectory (caminho); // Carregar o arquivo ftpfile [] fs = ftp.listfiles (); OutputStream out = null; InputStream in = null; for (int i = 0; i <fs.length; i ++) {ftpfile ff = fs [i]; String outfilename = ff.getName (); // Ao criar um arquivo local, você deve converter o formato de codificação Back String localFilename = new String (ff.getName (). GetBytes ("ISO-8859-"), "GBK"); Arquivo localfile = novo arquivo (LocalPath+Lcoalfilename); out = new FileOutputStream (LocalFile); in = ftp.retrievefilestream (outfileName); byte [] bytearray = novo byte [4096]; int read = 0; while ((read = in.read (bytearray))! =-1) {out.Write (bytearray, 0, leia); } // Esta frase é muito importante para operar o canal do fluxo FTP várias vezes e aguarde que cada comando preencha o ftp.completependingCommand (); out.flush (); out.Close (); ftp.logout (); sucessão = true; } catch (Exceção e) {} finalmente {if (ftp.isconnected ()) {ftp.disconnecct (); }}}O exposto acima é a implementação Java do FTP File Upload and Download que o editor apresenta a você. Espero que seja útil para você. Se você tiver alguma dúvida, deixe -me uma mensagem e o editor responderá a tempo. Muito obrigado pelo seu apoio ao site wulin.com!