android客戶端實現FTP文件(包括圖片)上傳應該沒什麼難度。寫下來就瞭為瞭記錄一下,望能幫到新手。
需要用到 commons-net-3.0.1.jar,後面附上jar包。
直接上代碼:
[java]
/**
* 通過ftp上傳文件
* @param url ftp服務器地址 如: 192.168.1.110
* @param port 端口如 : 21
* @param username 登錄名
* @param password 密碼
* @param remotePath 上到ftp服務器的磁盤路徑
* @param fileNamePath 要上傳的文件路徑
* @param fileName 要上傳的文件名
* @return
*//www.aiwalls.com
public String ftpUpload(String url, String port, String username,String password, String remotePath, String fileNamePath,String fileName) {
FTPClient ftpClient = new FTPClient();
FileInputStream fis = null;
String returnMessage = "0";
try {
ftpClient.connect(url, Integer.parseInt(port));
boolean loginResult = ftpClient.login(username, password);
int returnCode = ftpClient.getReplyCode();
if (loginResult && FTPReply.isPositiveCompletion(returnCode)) {// 如果登錄成功
ftpClient.makeDirectory(remotePath);
// 設置上傳目錄
ftpClient.changeWorkingDirectory(remotePath);
ftpClient.setBufferSize(1024);
ftpClient.setControlEncoding("UTF-8");
ftpClient.enterLocalPassiveMode();
fis = new FileInputStream(fileNamePath + fileName);
ftpClient.storeFile(fileName, fis);
returnMessage = "1"; //上傳成功
} else {// 如果登錄失敗
returnMessage = "0";
}
} catch (IOException e) {
e.printStackTrace();
throw new RuntimeException("FTP客戶端出錯!", e);
} finally {
//IOUtils.closeQuietly(fis);
try {
ftpClient.disconnect();
} catch (IOException e) {
e.printStackTrace();
throw new RuntimeException("關閉FTP連接發生異常!", e);
}
}
return returnMessage;
}
摘自 Scott 的專欄