FTP连接图片上传工具类

来源:互联网 发布:深圳软件开发工资水平 编辑:程序博客网 时间:2024/05/16 09:23

FTP连接图片上传工具类,记录一下方便以后调用。

package com.savinghappy.util;import org.apache.commons.net.ftp.FTPClient;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.util.List;/** * FTP服务器图片上传工具类 * Created by Saving on 2017/6/12. */public class FtpUtil{    private static  final Logger logger = LoggerFactory.getLogger(FtpUtil.class);    private static  String ftpip = PropertiesUtil.getProperties("ftp.server.ip");    private static  String ftpusername = PropertiesUtil.getProperties("ftp.user");    private static  String ftppassword = PropertiesUtil.getProperties("ftp.pass");    //服务器IP    private String ip ;    //ftpuser    private String username;    //ftppassword    private String password;    //ftp 端口    private int post;    //连接FTP对象    private FTPClient ftpClient;    /**     * 开放构造器是为了可以在不用配置文件的情况下,来连接ftp服务器,起到复用的效果     * @param ip     * @param username     * @param password     * @param post     */    public  FtpUtil(String ip, String username, String password, int post)    {        this.ip = ip;        this.username = username;        this.password = password;        this.post = post;    }    /**     * 提供给外部使用的文件上床方法     * @param fileList     * @return     * @throws IOException     */    public static  boolean  uploadingFile(List<File> fileList) throws IOException    {            FtpUtil ftpUtil = new FtpUtil(ftpip,ftpusername,ftppassword,21);            logger.info("开始连接FTP服务器");            boolean result = ftpUtil.uploadingFile("img",fileList);            logger.info("开始连接FTP服务器,上传已结束,结果为{}");            return result;    }    /**     * 用于内部调用的文件上床方法     * @param path   存放的路径     * @param listFile  需要上传的文件     * @return     * @throws IOException     */    private  boolean uploadingFile(String path, List<File> listFile) throws IOException    {        boolean uploading = true;        FileInputStream fileInputStream = null;        if(connectServer(this.ip,this.username,this.post,this.password))        {            try            {                ftpClient.changeWorkingDirectory(path);                ftpClient.setBufferSize(1024);                ftpClient.setControlEncoding("UTF-8");                ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);                ftpClient.enterLocalPassiveMode();                for(File fileIteam : listFile)                {                    fileInputStream=new FileInputStream(fileIteam);                    ftpClient.storeFile(fileIteam.getName(),fileInputStream);                }            } catch (IOException e)            {                logger.error("上传文件失败!",e);                uploading=false;            }finally            {                fileInputStream.close();                ftpClient.disconnect();            }        }        return uploading;    }    /**     * 根据IP、端口号和帐号密码来连接服务器,判断是否连接成功.     * @param ip     * @param username     * @param post     * @param password     * @return     */    private boolean connectServer(String ip ,String username ,int post, String password)    {        boolean isSuccess = false;        ftpClient = new FTPClient();        try        {            ftpClient.connect(ip,post);            isSuccess=ftpClient.login(username,password);        } catch (IOException e)        {           logger.error("连接FTP服务器异常",e);        }            return isSuccess;    }    public String getIp()    {        return ip;    }    public void setIp(String ip)    {        this.ip = ip;    }    public String getUsername()    {        return username;    }    public void setUsername(String username)    {        this.username = username;    }    public String getPassword()    {        return password;    }    public void setPassword(String password)    {        this.password = password;    }    public int getPost()    {        return post;    }    public void setPost(int post)    {        this.post = post;    }    public FTPClient getFtpClient()    {        return ftpClient;    }    public void setFtpClient(FTPClient ftpClient)    {        this.ftpClient = ftpClient;    }}
原创粉丝点击