当前位置: 首页 > 知识库问答 >
问题:

“Servlet无多部分配置”500 spring.http.multipart.enabled=false时出错,改为使用Apache Commons文件上载

高宸
2023-03-14

我需要上传一个流模式的大文件到一个带有Spring boot和嵌入式Jetty的服务器。当我使用默认org.springframework.web.multipart.multipartfile时,当我将大文件上传到带有嵌入式Jetty的服务器Spring boot时,会收到“堆空间异常”Java堆空间。

@PostMapping("import/upload")
public void importUpload(
        @RequestParam("file")
        HttpServletRequest request) throws Exception {
    ServletFileUpload upload = new ServletFileUpload();
    try (OutputStream outputStream = new FileOutputStream(zipArchive.getFile())) {
        FileItemIterator iterator = upload.getItemIterator(request);
        while (iterator.hasNext()) {
            FileItemStream item = iterator.next();
            if (!item.isFormField()) {
                InputStream inputStream = item.openStream();
                byte[] buffer = new byte[8192];
                int bytesRead;
                while ((bytesRead = inputStream.read(buffer)) > 0) {
                    outputStream.write(buffer, 0, bytesRead);
                }
            }
        }
    } catch (Exception ex) {
        throw new RuntimeException("Error: " + ex.getMessage(), ex);
    }
}
spring:
   http:
     multipart:
       enabled: false

在application.yml中

但现在当我试图上传一个文件时

如何修复此问题?

共有1个答案

姚信鸥
2023-03-14

您是否尝试在servlet中使用这个符号@multipartconfig?

@WebServlet(name = "fileUploadServlet", urlPatterns = {"/upload"})
@MultipartConfig(location=/tmp,
             fileSizeThreshold=0,    
             maxFileSize=5242880,       // 5 MB
             maxRequestSize=20971520)   // 20 MB
public class FileUploadServlet extends HttpServlet {}

像这样的东西。在这里你可以看到其他的选项。

 类似资料:
  • 我正在使用Spring Boot(1.5.7)和ng2文件上传(1.2.1)将文件上传到服务器。 所以我遇到了下一个问题,当文件上传开始并中断时(例如关闭浏览器选项卡),Spring Boot会记录下一个错误(两次): 当我将@ExceptionHandler添加到@ControllerAdvice时: 和应用程序的下一个属性。属性: 现在,当文件上载中断时,@ExceptionHandler会按

  • 因此,我是Spring的新手,我正在尝试让文件上传为我的项目工作(顺便说一句,我正在使用Spring工具套件),提交表单时,我得到的只是: HTTP状态500-无法解析多部分servlet请求;嵌套异常为java。lang.IllegalStateException:无法处理部件,因为未提供多部件配置 从浏览器堆栈跟踪: 这是jsp中的表单标记: 输入部分: 照片存储在此字段中的艺术家对象: 控制

  • 我试图实现一个rest web服务,该服务使用使用java配置的Spring上传文件。我不使用Spring Boot,我的类路径中有库。 我阅读了Spring文档,其中说: 如果我使用而不是,我会得到同样的错误。 这就是我初始化应用程序的方式: 我还尝试添加,但没有成功。 请帮帮我,我不知道还能做什么。

  • 问题内容: 我正在尝试读取文本文件,并使用Java中的字符串令牌生成器实用程序分别拆分单词。 文本文件如下所示; 现在,我想做的是从文本文件中获取每个字符并将其存储到数组列表中。然后,我尝试最后打印arraylist中的每个元素。 这是我的代码; 我得到的错误消息是这样; 其中“ getWords”是我的Java文件的名称。 谢谢。 问题答案: a)您始终必须先检查。如果没有更多标记可用,则抛出是

  • 我正在尝试使用Support Bee API创建附件,如下所述:https://supportbee.com/api#create_attachment 我编写了一个服务,它使用创建并发送使用文件名的请求。 如果我在《邮递员》中测试,它会成功。我正在为正文使用,只是从UI中选择要上载的文件: 当我试图通过我的服务上传它时,它不起作用: 这将导致500内部服务器错误。检查对象时,我可以看到它的标题值

  • 在Android中使用OKHTTP以多部分方式上传单个大文件(更具体地说,上传到s3)时,我有什么选择?