SpringBoot 文件上传及回显

文件上传/回显

SpringBoot默认tomcat上传文件大小问题(默认大小不能超过1MB)

 /**
     * 文件上传
     *
     * @param file
     * @throws IOException
     */
    @PostMapping("upload")
    @ApiOperation("文件上传")
    public void upload(@RequestParam("file") Part file) throws IOException {

        String data = "";
        LocalDateTime now = LocalDateTime.now();
        data += now.getYear();
        data += now.getMonthValue();
        data += now.getDayOfYear();
        log.info("文件上传的时间:{}", data);

        File folder = new File(PATH + data);
        if (!folder.exists() && !folder.isDirectory()) {
            folder.mkdir();
        }


        String fileName = Paths.get(file.getSubmittedFileName()).getFileName().toString();
        InputStream inputStream = file.getInputStream();
        OutputStream outputStream = new FileOutputStream(PATH + data + "\\" + fileName);
        byte[] buffer = new byte[1024];
        int bytesRead;
        while ((bytesRead = inputStream.read(buffer)) != -1) {
            outputStream.write(buffer, 0, bytesRead);
        }
        outputStream.close();
        inputStream.close();
    }

    /**
     * 文件回显、下载
     *
     * @param data
     * @param name
     * @param httpServletResponse
     * @throws IOException
     */
    @GetMapping("{data}/{file:.+}")
    public void getFile(@PathVariable("data") String data, @PathVariable("file") String name, HttpServletResponse httpServletResponse) throws IOException {
        ServletOutputStream outputStream = httpServletResponse.getOutputStream();
        byte[] bytes = Files.readAllBytes(Paths.get(PATH + data + "\\" + name));
        outputStream.write(bytes);
    }

这里注意,在tomcat中默认文件上传限制大小为1M=1048576字节,如果上传的文件超过了这个限制,就会报错。

解决办法:在web.xml中配置上传文件大小限制

<web-app>
    <!-- 上传文件大小限制 -->
    <multipart-config>
        <max-file-size>102400000</max-file-size>
        <max-request-size>102400000</max-request-size>
    </multipart-config>
</web-app>

注意:上传文件大小限制为102400000字节,即100M

注意:上传文件大小限制为102400000字节,即`10

application.yml

spring:
  servlet:
    multipart:
      max-file-size: 100MB #单个文件大小
      max-request-size: 200MB  # 总文件大小(允许存储文件的文件夹大小)
posted @ 2023-11-28 23:47  Cold的窝  阅读(201)  评论(0)    收藏  举报