文件上传功能Demo

文件上传功能Demo

控制层代码

    @RequestMapping("/upload")
    public ReturnValue uploadFileTest(@RequestParam("uploadFile") MultipartFile zipFile) {
        return subFundValuationService.uploadFileTest(zipFile);
    }

/*	MultipartFile 类
*/

服务层代码

ReturnValue uploadFileTest(MultipartFile zipFile);

服务实现层代码

@Service
public class SubFundValuationServiceImpl implements SubFundValuationService {

@Override
    public ReturnValue uploadFileTest(MultipartFile zipFile) {
        String targetFilePath = "D:\\test\\uploadTest";
        // 获取文件名
        String fileName = zipFile.getOriginalFilename();
        
        // 判断指定路径的文件夹是否存在,如果不存在就创建
        File file = new File(targetFilePath);
        if (!file.exists()) {
            return Result.failed("指定的接收文件夹不存在");
            // file.mkdirs();
        }

// 	UUID 通用唯一识别码是由一组32位数的16进制数字所构成,是故 UUID 理论上的总数为1632=2128,约等于3.4 x 10123。也就是说若每纳秒产生1百万个 UUID,要花100亿年才会将所有 UUID 用完
//        String fileName = UUID.randomUUID().toString().replace("-", "");
//        String fileSuffix = getFileSuffix(zipFile);
//        if (fileSuffix != null) {   // 拼接后缀
//            fileName += fileSuffix;
//        }

        File targetFile = new File(targetFilePath + File.separator + fileName);

        FileOutputStream fileOutputStream = null;
        try {
            fileOutputStream = new FileOutputStream(targetFile);
            IOUtils.copy(zipFile.getInputStream(), fileOutputStream);
        } catch (IOException e) {
            return new ReturnValue<>(-1, null);
        } finally {
            try {
                fileOutputStream.close();
            } catch (IOException e) {
            }
        }
        return new ReturnValue<>(ReturnCodeAndMsgEnum.Success, null);
    }


    // 获取文件后缀名()
    private String getFileSuffix(MultipartFile file) {
        if (file == null) {
            return null;
        }
        String fileName = file.getOriginalFilename();
        int suffixIndex = fileName.lastIndexOf(".");
        if (suffixIndex == -1) {    // 无后缀
            return null;
        } else {                    // 存在后缀
            return fileName.substring(suffixIndex, fileName.length());
        }
    }
}

测试界面
Postman上传文件测试

文件夹生成结果
UUID生成的唯一识别码由数字和字母组成,通过入参可以直接拿到文件名
上传到指定的本地文件夹结果

附加:配置文件

  spring:
      servlet:
        multipart:
          max-file-size: 50MB
          max-request-size: 50MB   MB必须大写(有坑)
#单个文件最大限制:
spring.servlet.multipart.max-file-size=50Mb
#单次请求最大限制:
spring.servlet.multipart.max-request-size=70Mb 

# 字母大小写未检测
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值