Android客戶端實現FTP文件(包括圖片)上傳應該沒什麼難度。寫下來就了為了記錄一下,望能幫到新手。
需要用到 commons-net-3.0.1.jar,附上jar包。
免費下載地址在 http://linux.linuxidc.com/
用戶名與密碼都是www.linuxidc.com
具體下載目錄在 /2012年資料/2月/29日/Android開發教程之FTP文件上傳/
直接上代碼:
- /**
- * 通過ftp上傳文件
- * @param url ftp服務器地址 如: 192.168.1.110
- * @param port 端口如 : 21
- * @param username 登錄名
- * @param password 密碼
- * @param remotePath 上到ftp服務器的磁盤路徑
- * @param fileNamePath 要上傳的文件路徑
- * @param fileName 要上傳的文件名
- * @return
- */
- 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;
- }