靜態資源上傳至遠程ftp服務器,ftp工具類封裝

工具類,是一個單獨的工程項目spring

 

提取必要信息至ftp.properties配置文件中springboot

ftp_host=192.168.110.128
ftp_port=21
ftp_username=ftpuser
ftp_password=ftpuser
ftp_dir=/home/ftpuser/jd
ftp_url=http://www.images.com

 

封裝FtpUtils工具類服務器

public class FtpUtils {
    private static String ftp_host = null;
    private static String ftp_port = null;
    private static String ftp_username = null;
    private static String ftp_password = null;
    private static String ftp_dir = null;
    private static String ftp_url = null;
    //一、封裝參數
    static{
        InputStream ris = FtpUtils.class.getClassLoader().getResourceAsStream("ftp.properties");
        Properties pp = new Properties();
        try {
            pp.load(ris);
            ftp_host = pp.getProperty("ftp_host");
            ftp_port = pp.getProperty("ftp_port");
            ftp_username = pp.getProperty("ftp_username");
            ftp_password = pp.getProperty("ftp_password");
            ftp_dir = pp.getProperty("ftp_dir");
            ftp_url = pp.getProperty("ftp_url");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    /****
     * 實現建文件上傳到靜態資源服務器
     */
    public static String uploadFile(String remote,InputStream local) {
        
        try {
            //建立FTPClient對象 
            FTPClient client=new FTPClient();
            //創建和ftp服務的連接
            client.connect(ftp_host, Integer.parseInt(ftp_port));
            //身份驗證
            client.login(ftp_username, ftp_password);
            //設置上傳的文件類型
            client.setFileType(FTP.BINARY_FILE_TYPE);
            //切換工做目錄
            if(!client.changeWorkingDirectory(ftp_dir)) {
                client.makeDirectory(ftp_dir);
                client.changeWorkingDirectory(ftp_dir);
            }
            //上傳
            client.storeFile(remote, local);
            
        }catch(Exception ex) {
            ex.printStackTrace();
        }
        return ftp_url+"/jd/"+remote;
    }
}

導入jar包版本:ide

<!-- ftpclient客戶端  -->
<!--ftp文件上傳-->
 <dependency>
       <groupId>commons-net</groupId>
       <artifactId>commons-net</artifactId>
       <version>3.3</version>
 </dependency>

測試調用:工具

/**
     * 處理上傳圖片請求
     */
    @Override
    public Map<String, Object> uploadImageService(MultipartFile mf) {
        // TODO Auto-generated method stub
        HashMap<String, Object> map = new HashMap<>();
        try {
            //文件重命名
            String oldName = mf.getOriginalFilename();
            String remote = IDUtils.genImageName()+oldName.substring(oldName.lastIndexOf("."));

            String url = FtpUtils.uploadFile(remote, mf.getInputStream());
            map.put("error", 0);
            map.put("url", url);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            map.put("error", 1);
            map.put("message", "上傳失敗");
            e.printStackTrace();
        }
        return map;
    }

 

 

注:使用的是springboot,已經集成了ftp,因此沒有配置相應的xml文件。測試

相關文章
相關標籤/搜索