博主
258
258
258
258
专辑

第二十三节 SpringBoot实现文件的上传和下载

亮子 2021-07-01 01:29:44 1054 0 0 0

1、修改文件上传大小限制

## application.properties
## 文件上传大小限制
spring.servlet.multipart.max-request-size=100MB
spring.servlet.multipart.max-file-size=100MB

2、单个文件的上传

    @PostMapping(value = "/uploadFile")
    public ResultResponse uploadFile(@RequestPart("file") MultipartFile file) {
        //-- 检查参数
        if(file.isEmpty()){
            return ResultResponse.FAILED(400);
        }

        //-- 获取上传的文件名
        String fileName = file.getOriginalFilename();
        log.info("filename={},filesize={}", fileName, file.getSize());

        //-- 使用随机文件名,防止文件覆盖
        String suffix = fileName.substring(fileName.lastIndexOf(".")).toLowerCase();
        String newName = UUID.randomUUID().toString();
        newName = newName + suffix;

        //-- 准备目录
        File dest = new File("D:/temp" + "/" + newName);
        if(!dest.getParentFile().exists()){
            dest.getParentFile().mkdir();
        }
        try {
            // 保存文件
            file.transferTo(dest);

            // 返回上传的文件信息
            //this.fileUrl = newName;
            //this.fileName = fileName;
            String fileUrl = "http://localhost:9010/upload/" + newName;
            HashMap<String, Object> map = new HashMap<>();
            map.put("fileName", fileName);
            map.put("fileUrl", fileUrl);
            return ResultResponse.SUCCESS(map);
        } catch (IllegalStateException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            return ResultResponse.FAILED(500, e.getMessage());
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            return ResultResponse.FAILED(500, e.getMessage());
        }
    }