1. 程式人生 > >FTP檔案上傳

FTP檔案上傳

public class FTPUtil {

    private static  final Logger logger = LoggerFactory.getLogger(FTPUtil.class);

    private static String ftpIp = PropertiesUtil.getProperty("ftp.server.ip");
    private static String ftpUser = PropertiesUtil.getProperty("ftp.user");
    private static String ftpPass = PropertiesUtil.getProperty("ftp.pass");

    public FTPUtil(String ip,int port,String user,String pwd){
        this.ip = ip;
        this.port = port;
        this.user = user;
        this.pwd = pwd;
    }
    public static boolean uploadFile(List<File> fileList) throws IOException {
        FTPUtil ftpUtil = new FTPUtil(ftpIp,21,ftpUser,ftpPass);
        logger.info("開始連線ftp伺服器");
        boolean result = ftpUtil.uploadFile("img",fileList);
        logger.info("開始連線ftp伺服器,結束上傳,上傳結果:{}");
        return result;
    }


    private boolean uploadFile(String remotePath,List<File> fileList) throws IOException {
        boolean uploaded = true;
        FileInputStream fis = null;
        //連線FTP伺服器
        if(connectServer(this.ip,this.port,this.user,this.pwd)){
            try {
                ftpClient.changeWorkingDirectory(remotePath);
                ftpClient.setBufferSize(1024);
                ftpClient.setControlEncoding("UTF-8");
                ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);
                ftpClient.enterLocalPassiveMode();
                for(File fileItem : fileList){
                    fis = new FileInputStream(fileItem);
                    ftpClient.storeFile(fileItem.getName(),fis);
                }

            } catch (IOException e) {
                logger.error("上傳檔案異常",e);
                uploaded = false;
                e.printStackTrace();
            } finally {
                fis.close();
                ftpClient.disconnect();
            }
        }
        return uploaded;
    }



    private boolean connectServer(String ip,int port,String user,String pwd){

        boolean isSuccess = false;
        ftpClient = new FTPClient();
        try {
            ftpClient.connect(ip);
            isSuccess = ftpClient.login(user,pwd);
        } catch (IOException e) {
            logger.error("連線FTP伺服器異常",e);
        }
        return isSuccess;
    }











    private String ip;
    private int port;
    private String user;
    private String pwd;
    private FTPClient ftpClient;

    public String getIp() {
        return ip;
    }

    public void setIp(String ip) {
        this.ip = ip;
    }

    public int getPort() {
        return port;
    }

    public void setPort(int port) {
        this.port = port;
    }

    public String getUser() {
        return user;
    }

    public void setUser(String user) {
        this.user = user;
    }

    public String getPwd() {
        return pwd;
    }

    public void setPwd(String pwd) {
        this.pwd = pwd;
    }

    public FTPClient getFtpClient() {
        return ftpClient;
    }

    public void setFtpClient(FTPClient ftpClient) {
        this.ftpClient = ftpClient;
    }
}


相關推薦

Android關於FTP檔案和下載功能詳解

Android關於FTP檔案上傳和下載功能詳解  更新時間:2017年09月21日 11:41:14   作者:一諾的祕密花園    我要評論 這篇文章主要為大家詳細介紹了Android關於FTP檔案上傳和下載功能,具有一定的參考價值,感興趣

【高效開發外掛】09 FTPUtil FTP 檔案工具類

package com.yuu.mall.util; import org.apache.commons.net.ftp.FTPClient; import org.slf4j.Logger; import org.slf4j.LoggerFactory;

Java 實現ftp 檔案、下載和刪除

本文利用apache ftp工具實現檔案的上傳下載和刪除。具體如下: 1、下載相應的jar包      commons-net-1.4.1.jar 2、實現程式碼如下: public class FtpUtils { //ftp伺服器地址

寶塔-PHP-伺服器-資料庫-FTP-檔案 問題集

簡介:    今天分享一下自己寫的筆記,最近部署伺服器所遇到的各種問題,比較典型的問題都寫在了筆記裡面,現在我把筆記分享給出來,希望可以給大家一點幫助~ 問題目錄: 1.寶塔設定 伺服器 本地資料庫、RDS雲資料庫 連線不上 2.寶塔設定 伺服器 FTP無法連線

centos6.5 ftp檔案遇到的問題彙總

1、ftp 192.168.1.* -bash: ftp: command not found 解決方案:ftp命令沒有安裝  # yum install ftp 2、ftp: connect: 拒絕連線     解決方案:     (1

java 中 FtpClient 實現 FTP 檔案、下載

package ftp; import java.io.BufferedWriter; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.FileWrit

用ASP.NET的FileUpload控制元件實現帶對話方塊的FTP檔案功能

      最近不得已開始做網頁,一個ASP.NET的專案,需要實現FTP上傳功能,於是上網廣搜程式碼,發現FTP上傳的程式碼到處都是,隨手拈來,可是一般來說客戶端上傳檔案都需要一個檔案選擇對話方塊,正好自帶的FileUpload控制元件能夠實現。但是網上搜到FileUpl

java ftp檔案下載刪除

package ftp; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStre

十八.Python模擬FTP檔案

Python 模擬FTP斷點續傳併發伺服器   #配置檔案 #伺服器配置檔案 [server_config] ip=127.0.0.1 port=8006 buffersize=1024 encoding=utf-8 #伺服器使用者資料 

FTP檔案

public class FTPUtil { private static final Logger logger = LoggerFactory.getLogger(FTPUtil.class); private static String ftpIp = PropertiesUtil

java/struts/Servlet檔案下載與ftp檔案下載

String s1=transUrl; // transUrl是前臺接受的引數,get接受的引數tomcat一律使用iso-8859-1編碼 transUrl=new String(transUrl.getBytes("ISO-8859-1"),"utf-8");//程式中要使用的檔名,必須轉換為gbk

FTP檔案demo

該demo主要是封裝了MS的Wininet.dll,方便FTP檔案上傳, 解決了在XP系統下面InternetConnect()介面在FTP伺服器不可用,連線超時嚴重,且不可控的問題。 該demo在WIN7 64 和XP 32 自測通過。 完整工程原始碼下載地址: --

Shell FTP檔案下載

1.上傳檔案到ftp 建立一個shell檔案:touch upload.sh 修改為可執行檔案:chmod +x upload.sh 編輯:vim upload.sh,指令碼內容如下 cd /user/directory/target export putfile=y

使用FileZilla連線Linux伺服器正常連線,但是無法圖片[FTP檔案]

使用FileZilla進行連線伺服器,不能上傳圖片的解決方式:     1.將要上傳到伺服器上的資料夾的許可權改為777,如chmod -R 777 /var/images     2.開啟vsftp

基於spring boot ftp檔案

對ftp檔案上傳將行封裝,實現連線的單例模式,完成執行緒安全的改進,ftp檔案上傳下載失敗的重試。application.yml配置檔案ftp:    ip: 127.0.0.1    port: 21    username: admin    password: admi

Python3的FTP檔案下載

關於 FTP 和 SFTP 服務搭建,參考連結 另關於 Python3 的 SFTP 檔案上傳下載,參見我的另外一篇部落格,連結 注:程式碼中的變數命名規則採用的是“駝峰式”命名法,這可能帶來程式碼檢查提示,在PyCharm中可以Alt + Enter忽略此類檢查

ftp 檔案與刪除

/** * 初始化ftp伺服器 */ private FTPClient initFtpClient() throws Exception { String host = FamousClassRoomPropertiesConfi

Jdk1.7自帶的FTP檔案下載

Ftp相關的類庫很多,這裡以JDK自帶的FTP上傳下載功能為例。 Java程式碼   package com.boonya.upload.util.simple;  import java.io.File;  import java.io.FileInputStrea

SpringBoot檔案(本地虛擬路徑和遠端ftp

一、測試中圖片上傳到本地硬碟      1、配置本地檔案上傳虛擬路徑(二種方式)       (1)方式一:yaml配置檔案 server: port: 8081 #配置檔案上傳的虛擬路徑 web: upload:

ftp命令檔案及資料夾

  不想下載客戶端,懶得寫上傳指令碼,直接通過ftp命令把檔案丟到伺服器。 目標:將本地目錄/local_a下的內容,上傳到伺服器/server_b目錄中。 步驟:   1、ftp登陸: 輸入命令 sftp [email protected]  接著提示輸入密碼,直接輸入密碼即可。此