疯狂的狮子li
2021-08-02 c813046594b82230cd2cb61622d68a4981096e08
ruoyi-common/src/main/java/com/ruoyi/common/utils/file/FileUploadUtils.java
@@ -1,9 +1,7 @@
package com.ruoyi.common.utils.file;
import java.io.File;
import java.io.IOException;
import org.apache.commons.io.FilenameUtils;
import org.springframework.web.multipart.MultipartFile;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.util.IdUtil;
import com.ruoyi.common.config.RuoYiConfig;
import com.ruoyi.common.constant.Constants;
import com.ruoyi.common.exception.file.FileNameLengthLimitExceededException;
@@ -11,11 +9,15 @@
import com.ruoyi.common.exception.file.InvalidExtensionException;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.uuid.IdUtils;
import org.apache.commons.io.FilenameUtils;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.io.IOException;
/**
 * 文件上传工具类
 *
 *
 * @author ruoyi
 */
public class FileUploadUtils
@@ -89,7 +91,7 @@
     *
     * @param baseDir 相对应用的基目录
     * @param file 上传的文件
     * @param extension 上传文件类型
     * @param allowedExtension 上传文件类型
     * @return 返回上传成功的文件名
     * @throws FileSizeLimitExceededException 如果超出最大大小
     * @throws FileNameLengthLimitExceededException 文件名太长
@@ -111,7 +113,8 @@
        String fileName = extractFilename(file);
        File desc = getAbsoluteFile(baseDir, fileName);
        file.transferTo(desc);
      desc = FileUtil.touch(desc);
      FileUtil.writeFromStream(file.getInputStream(), desc);
        String pathFileName = getPathFileName(baseDir, fileName);
        return pathFileName;
    }
@@ -123,7 +126,7 @@
    {
        String fileName = file.getOriginalFilename();
        String extension = getExtension(file);
        fileName = DateUtils.datePath() + "/" + IdUtils.fastUUID() + "." + extension;
        fileName = DateUtils.datePath() + "/" + IdUtil.fastUUID() + "." + extension;
        return fileName;
    }
@@ -131,15 +134,13 @@
    {
        File desc = new File(uploadDir + File.separator + fileName);
        if (!desc.getParentFile().exists())
        if (!desc.exists())
        {
            desc.getParentFile().mkdirs();
            if (!desc.getParentFile().exists())
            {
                desc.getParentFile().mkdirs();
            }
        }
        // 解决undertow文件上传bug,因底层实现不同,无需创建新文件
//        if (!desc.exists())
//        {
//            desc.createNewFile();
//        }
        return desc;
    }
@@ -187,6 +188,11 @@
                throw new InvalidExtensionException.InvalidMediaExtensionException(allowedExtension, extension,
                        fileName);
            }
            else if (allowedExtension == MimeTypeUtils.VIDEO_EXTENSION)
            {
                throw new InvalidExtensionException.InvalidVideoExtensionException(allowedExtension, extension,
                        fileName);
            }
            else
            {
                throw new InvalidExtensionException(allowedExtension, extension, fileName);
@@ -216,7 +222,7 @@
    /**
     * 获取文件名的后缀
     *
     *
     * @param file 表单文件
     * @return 后缀名
     */
@@ -229,4 +235,4 @@
        }
        return extension;
    }
}
}