ftp文件服务器工具类 Java版

引入依赖:

<!--ftp文件上传-->
        <dependency>
            <groupId>commons-net</groupId>
            <artifactId>commons-net</artifactId>
            <version>3.3</version>
        </dependency>

 

package com.wuye.util;

import org.springframework.web.multipart.MultipartFile;

import java.io.InputStream;

/**
 * @author 
 * @date 
 */
public class FileTool {

    final static String url="127.0.0.1";     // FTP服务器hostname
    final static int port=21;                    // FTP服务器端口
    final static String username="ftptest"; // FTP登录账号
    final static String password="123456"; // FTP登录密码
    final static String path="images"; // FTP服务器保存目录
    /**
     * 上传图片
     * @param file
     * @return
     * @throws Exception
     */
    public static String uploadPic(MultipartFile file) throws Exception{
        if(file.getSize()==0){
            return null;
        }
        String filename = file.getOriginalFilename();
        System.out.println("图片名是:"+filename);
        if(filename.length() == 0){
            return null;
        }
        //得到后缀名
        int lastIndex = filename.lastIndexOf(".");
        String suffix = filename.substring(lastIndex);
        //将文件名字替换-->文件地址
        filename = CommonUtil.getUUID()+suffix;
        String picurl="http://47.92.103.143:8088/images/"+filename;
        InputStream input = file.getInputStream();
        FTPClient ftp = new FTPClient();
        ftp.setControlEncoding("UTF-8");
        try {
            int reply;
            ftp.connect(url, port);// 连接FTP服务器
            // 如果采用默认端口,可以使用ftp.connect(url)的方式直接连接FTP服务器
            ftp.login(username, password);// 登录
            reply = ftp.getReplyCode();
            if (!FTPReply.isPositiveCompletion(reply)) {
                ftp.disconnect();
                return null;
            }
            ftp.enterLocalPassiveMode();
            ftp.setFileType(FTPClient.BINARY_FILE_TYPE);
            ftp.makeDirectory(path);
            ftp.changeWorkingDirectory(path);
            ftp.storeFile(filename, input);
            input.close();
            ftp.logout();

        } catch (IOException e) {
            e.printStackTrace();
            return null;
        } finally {
            if (ftp.isConnected()) {
                try {
                    ftp.disconnect();
                } catch (IOException ioe) {
                    ioe.printStackTrace();
                }
            }
        }
        return picurl;
    }

    /**
     * 上传并且删除图片
     * @param file
     * @param oldFileName
     * @return
     * @throws Exception
     */
    public static String uploadAndDeletePic(MultipartFile file,String oldFileName) throws Exception{
        if(file.getSize()==0){
            return null;
        }
        String filename = file.getOriginalFilename();
        //得到后缀名
        int lastIndex = filename.lastIndexOf(".");
        String suffix = filename.substring(lastIndex);
        //将文件名字替换-->文件地址
        filename = CommonUtil.getUUID()+suffix;
        String picurl="http://47.92.103.143:8088/images/"+filename;
        InputStream input = file.getInputStream();
        FTPClient ftp = new FTPClient();
        ftp.setControlEncoding("UTF-8");
        try {
            int reply;
            ftp.connect(url, port);// 连接FTP服务器
            // 如果采用默认端口,可以使用ftp.connect(url)的方式直接连接FTP服务器
            ftp.login(username, password);// 登录
            reply = ftp.getReplyCode();
            if (!FTPReply.isPositiveCompletion(reply)) {
                ftp.disconnect();
                return null;
            }
            ftp.enterLocalPassiveMode();
            ftp.setFileType(FTPClient.BINARY_FILE_TYPE);
            ftp.makeDirectory(path);
            ftp.changeWorkingDirectory(path);
            if (StringUtils.isNotEmpty(oldFileName)){
                ftp.deleteFile(oldFileName);
            }
            ftp.storeFile(filename, input);
            input.close();
            ftp.logout();

        } catch (IOException e) {
            e.printStackTrace();
            return null;
        } finally {
            if (ftp.isConnected()) {
                try {
                    ftp.disconnect();
                } catch (IOException ioe) {
                    ioe.printStackTrace();
                }
            }
        }
        return picurl;
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序猿毕业分享网

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值