package com.gx.ftp; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.io.UnsupportedEncodingException; import org.apache.commons.net.ftp.FTP; import org.apache.commons.net.ftp.FTPClient; import org.apache.commons.net.ftp.FTPReply; public class TestFtp { public static void main(String[] args) { String path = "D:/upLoadFiles/APTransferPlan/1a4f74a0-f6ac-4e91-8225-3dca5a7ccad1"; String filename = "02.jpg"; String name = null; try { name = new String(filename.getBytes("GBK"), "iso-8859-1"); // 處理上傳到ftp上的文件名不能爲中文的問題 FileInputStream in = new FileInputStream(new File(path)); boolean flag = uploadFile("127.0.0.1", 21, "test", "1","E:/ftptest", name, in); System.out.println(flag); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } catch (FileNotFoundException e) { e.printStackTrace(); } } /** * Description: 向FTP服務器上傳文件 * @param url: FTP服務器hostname * @param port: FTP服務器端口 * @param username:FTP登錄賬號 * @param password: FTP登錄密碼 * @param path:FTP服務器保存目錄 * @param filename:上傳到FTP服務器上的文件名 * @param input: 輸入流 * @return 成功返回true,否則返回false */ public static boolean uploadFile(String url, int port, String username, String password, String path, String filename, InputStream input) { boolean success = false; FTPClient ftp = new FTPClient(); try { int reply; ftp.connect(url, port);// 連接FTP服務器 ftp.login(username, password);// 登錄 reply = ftp.getReplyCode(); //處理上傳到ftp的文件打不開,圖片破損等問題 ftp.setFileType(FTP.BINARY_FILE_TYPE); ftp.setControlEncoding("GBK"); if (!FTPReply.isPositiveCompletion(reply)) { ftp.disconnect(); return success; } ftp.changeWorkingDirectory(path); ftp.storeFile(filename, input); input.close(); ftp.logout(); success = true; } catch (IOException e) { e.printStackTrace(); } finally { if (ftp.isConnected()) { try { ftp.disconnect(); } catch (IOException ioe) { } } } return success; } }
ftp文件上傳,Java上傳
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.