1. 程式人生 > 程式設計 >Android FTP伺服器上傳檔案攻略(程式碼詳解)

Android FTP伺服器上傳檔案攻略(程式碼詳解)

1.前言

在開發中,會遇到向FTP伺服器上傳檔案的需求,首先要匯入
commons-net-3.3.jar 然後利用api進行相關操作,具體功能如下:

Ftp相關程式碼

import android.util.Log;

import org.apache.commons.net.ftp.FTP;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPReply;

import java.io.FileInputStream;

public class FTPClientUtils {

 private static final String TAG = "MainActivity";
 private FTPClient ftpClient = null; // FTP客戶端

 /**
  * 連線到FTP伺服器
  *
  * @param host  ftp伺服器域名
  * @param username 訪問使用者名稱
  * @param password 訪問密碼
  * @param port  埠
  * @return 是否連線成功
  */
 public boolean ftpConnect(String host,String username,String password,int port) {
  try {
   ftpClient = new FTPClient();
   ftpClient.connect(host,port);
   // 根據返回的狀態碼,判斷連結是否建立成功
   if (FTPReply.isPositiveCompletion(ftpClient.getReplyCode())) {
    boolean status = ftpClient.login(username,password);
    /*
     * 設定檔案傳輸模式
     * 避免一些可能會出現的問題,在這裡必須要設定檔案的傳輸格式。
     * 在這裡我們使用BINARY_FILE_TYPE來傳輸文字、影象和壓縮檔案。
     */
    ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
    ftpClient.enterLocalPassiveMode();
    return status;
   }
  } catch (Exception e) {
   e.printStackTrace();
  }
  return false;
 }

 /**
  * 斷開ftp伺服器連線
  *
  * @return 斷開結果
  */
 public boolean ftpDisconnect() {
  // 判斷空指標
  if (ftpClient == null) {
   return true;
  }
  // 斷開ftp伺服器連線
  try {
   ftpClient.logout();
   ftpClient.disconnect();
   return true;
  } catch (Exception e) {
   e.printStackTrace();
  }
  return false;
 }

 /**
  * ftp 檔案上傳
  *
  * @param srcFilePath 原始檔目錄
  * @param desFileName 檔名稱
  * @return 檔案上傳結果
  */
 public boolean ftpUpload(String srcFilePath,String desFileName) {
  boolean status = false;
  try {
   FileInputStream srcFileStream = new FileInputStream(srcFilePath);
   status = ftpClient.storeFile(desFileName,srcFileStream);
   srcFileStream.close();
   return status;
  } catch (Exception e) {
   e.printStackTrace();
  }
  return status;
 }

 /**
  * ftp 更改目錄
  *
  * @param path 更改的路徑
  * @return 更改是否成功
  */
 public boolean ftpChangePath(String path) {
  boolean status = false;
  try {
   status = ftpClient.changeWorkingDirectory(path);
  } catch (Exception e) {
   e.printStackTrace();
  }
  return status;
 }
}

2.呼叫api

boolean isConnect = mFtpClient.ftpConnect("伺服器host","使用者名稱","密碼",21);//預設埠號是21
   if (isConnect) {
    boolean isSuccessful = mFtpClient.ftpUpload("/sdcard/" + folderName + "/" + mPicturename,"/htdocs/pics/" + mPicturename);
    if (isSuccessful) {
     mFtpClient.ftpDisconnect();
   		//上傳成功
    } else {
     //上傳失敗
    }
   } else {
    //伺服器連線失敗
   }

總結

到此這篇關於Android FTP伺服器上傳檔案攻略的文章就介紹到這了,更多相關Android FTP伺服器上傳內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!