为了账号安全,请及时绑定邮箱和手机立即绑定

有没有办法按文件类型指定MAX文件大小?

有没有办法按文件类型指定MAX文件大小?

精慕HU 2022-09-22 19:34:09

我想知道如何配置我的弹簧引导服务器,以便能够根据要上传文件类型为文件评估不同的最大大小值

例如,10MB用于.pdf文件,100MB用于.mp4文件,500MB用于.zip文件等...

目前,我在我的应用程序属性中得到了这个:

spring.servlet.multipart.max-file-size=100MB

但它只是为每个可能的文件分配100MB。

任何想法,我该如何实现它?


感谢您的帮助!


查看完整描述

1 回答

?
哈士奇WWW

TA贡献1476条经验 获得超6个赞

您可以使用自己的多部分处理程序,以便以编程方式设置最大上载大小。例如,在控制器中使用 Servlet 文件上传

DiskFileItemFactory factory = new DiskFileItemFactory(thresholdBytes, tempDir);

ServletFileUpload upload = new ServletFileUpload(factory);

upload.setFileSizeMax(maxFileSize);


for (FileItem item : upload.parseRequest(request)) {

    // Save the file

    File uploadedFile = new File(myPath);

    item.write(uploadedFile);

}

为了更好地控制流处理,您可以使用自己的流式处理逻辑来使用和传输字节。item.getInputStream()


要使用此功能,您需要禁用Spring的默认多部分处理或。spring.servlet.multipart.enabled = falsespring.servlet.multipart.resolve-lazily = true


第二个选项是注册多个 Servlet,每个 servlet 处理不同的文件类型,并为每个 Servlet 定义不同的(具有和指定的)。然后从主服务器内部重定向到特定于文件类型的 Servlet。@MultipartConfigmaxFileSizemaxRequestSize


查看完整回答
反对 回复 2022-09-22

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信