Java 常用工具类(28) : 文件上传工具类

import com.aliyun.et.industry.pangang.common.consts.Configs;
import com.aliyun.et.industry.templateboot.common.util.CodeUtil;
import org.apache.commons.io.FileUtils;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;

/**
 * @Auther: liyue
 * @Date: 2019/10/12 10:26
 * @Description: 文件上传工具类
 */
public class UploadUtil {

    private static String PATH = "/Users/leyili/Desktop/file_test";

    private static String RULE = "_rule_";

    /**
     * 上传一个文件,返回file对象
     *
     * @param files
     * @return
     * @throws Exception
     */
    public static File uploadReturnFile(MultipartFile[] files) throws Exception {
        File finalFile = null;
        String filePath = generatePath();
        for (MultipartFile file : files) {
            if (!file.isEmpty()) {
                FileUtils.deleteDirectory(new File(filePath));
                File drectory = new File(filePath);
                if (!drectory.exists()) {
                    drectory.mkdir();
                }
                String fileName = file.getOriginalFilename();
                File dest = new File(filePath + fileName);
                file.transferTo(dest);
                finalFile = dest;
                break;
            }

        }
        return finalFile;
    }

    /**
     * 上传一个文件,返回文件绝对路径
     *
     * @param files
     * @return
     * @throws Exception
     */
    public static String uploadReturnPath(MultipartFile[] files) throws Exception {
        String finalPath = null;
        String filePath = generatePath();
        for (MultipartFile file : files) {
            if (!file.isEmpty()) {
                FileUtils.deleteDirectory(new File(filePath));
                File drectory = new File(filePath);
                if (!drectory.exists()) {
                    drectory.mkdir();
                }
                String fileName = file.getOriginalFilename();
                File dest = new File(filePath + fileName);
                file.transferTo(dest);
                finalPath = dest.getPath();
                break;
            }

        }
        return finalPath;
    }

    /**
     * 上传之后删除文件
     *
     * @param filePath
     */
    public static void delete(String filePath) {
        try {
            FileUtils.deleteDirectory(getDirectory(filePath));
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    /**
     * 上传之后删除文件
     *
     * @param file
     */
    public static void delete(File file) {
        String filePath = file.getPath();
        try {
            FileUtils.deleteDirectory(getDirectory(filePath));
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    /**
     * 获取临时文件夹对象
     *
     * @param filePath
     * @return
     */
    private static File getDirectory(String filePath) {
        String[] paths = filePath.split(RULE);
        return new File(paths[0] + RULE + paths[1] + RULE + "/");
    }

    /**
     * 生产临时路径
     *
     * @return
     */
    private static String generatePath() {
        return PATH + "/" + RULE + CodeUtil.generateRandomString(6) + RULE + "/";
    }
}

依赖 : 

CodeUtil : https://blog.csdn.net/Lxinccode/article/details/102516162
 

<dependency>
    <groupId>commons-io</groupId>
    <artifactId>commons-io</artifactId>
    <version>2.6</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-web</artifactId>
    <version>5.2.0.RELEASE</version>
</dependency>

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值