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

Spring-EleAF所需的请求部分“文件”不存在

习淇
2023-03-14

我试图上传大文件使用Spring和普通话MultipartResolver(与此相关主题非常相似的东西

上传一个小文件(几Kb)的结果如下:

Whitelabel Error Page
This application has no explicit mapping for /error, so you are seeing this 
as a fallback.

Fri Mar 02 23:54:59 MSK 2018
There was an unexpected error (type=Bad Request, status=400).
Required request part 'file' is not present

这是我的UploadController.java"/上传"方法代码:

@PostMapping(value = "/upload", consumes = 
MediaType.MULTIPART_FORM_DATA_VALUE)
public String singleFileUpload(@RequestParam("file") 
MultipartFile file,
                        RedirectAttributes redirectAttributes){

    if (file.isEmpty()){
        redirectAttributes.addFlashAttribute("message", "Файл для загрузки не выбран. Выберите файл в диалоге");
        return "redirect:/files";
    }

    try {

        BufferedOutputStream outputStream = new BufferedOutputStream(
                new FileOutputStream(
                        new File(UPLOAD_LOCATION + "\\", 
file.getOriginalFilename())));
        outputStream.write(file.getBytes());
        outputStream.flush();
        outputStream.close();

String.format("Файл %s успешно загружен", file.getOriginalFilename()));

    } catch (IOException e) {
        e.printStackTrace();
    }

    return "redirect:/files";

}

我的表单代码:

<div class="form-group">
<form method="post" enctype="multipart/form-data" action="/upload">
<input type="file" class="file" name="file" />
<small id="fileHelp" class="form-text text-muted">Выберите файл для загрузки в файловый каталог приложения. После загрузки файл автоматически появится в этом списке. </small>
<button type="submit" class="btn btn-default">Загрузить на сервер</button>
</form>
</div>

以及注释bean定义:

@Bean
public MultipartResolver multipartResolver() { CommonsMultipartResolver 
multipartResolver = new CommonsMultipartResolver();
multipartResolver.setMaxUploadSize(10 * 1024 * 1024 * 1024); // 10 GB
multipartResolver.setMaxUploadSizePerFile(3 * 1024 * 1024 * 1024); // 3 GB
return multipartResolver;
}

和应用。特性:

spring.http.multipart.max-file-size=3000MB
spring.http.multipart.max-request-size=3000MB

我在表单输入中有一个正确的属性名“file”和@RequestParam值,我还在@PostMapping注释中编写了一个MediaType,但它仍然无法工作。另外,我注意到,当我没有定义CommonMultipartResolver bean时,上传是有效的,但只适用于小于300 Mb的文件。。。

我做错了什么?

共有1个答案

薛枫
2023-03-14

尝试将以下属性添加到您的。属性文件:

multipart.enabled=true
 类似资料:
  • 我一直在看这个,但似乎我的问题在别处。我试图上传一个文件。当前定义为: 上传过程如下: 而这是Spring REST终结点: 问题是,Spring抛出了一个异常,告诉我参数不存在: 这是请求信息: 我怎样才能使这个文件上传工作?

  • 我有一个执行文件上传的控制器,我正在尝试从另一个服务向控制器endpoint发布请求。 从我调用上述endpoint的位置发送代码 我得到以下错误,不知道原因: 已经四处寻找了一段时间,没有解决方案。

  • 我试图向我的控制器发送POST请求,但除非我决定使用JSON,否则无法以任何类型传递任何参数。我的目标是将一个字符串和一个文件传递给我的控制器,但我不断得到错误。 我不能在这里有文件。同样,如果我尝试: 同样的事情,我在这里找不到名字。 我通过邮递员发送请求,如下所示: 唯一的标题标记用于授权。我没有任何内容类型标题,我试图添加,但没有帮助。 传递字符串参数的唯一方法是向URL添加。所以下面的有效

  • 我想通过邮递员上传一个图像到我的Rest API。我使用的是Spring Boot框架。以下是屏幕截图: 我也没有设置任何头部,因为我在其他堆栈溢出答案中发现,它给出了多部分边界错误。 下面是我的控制器代码: 现在,我将使用一个产品对象,该对象内部包含一个定义为Byte[]数组的图像。我把它作为字符串和图像分开作为多部分文件。 下面是我定义的产品类属性: 因为,我使用的是spring boot,这

  • 我正在尝试将图像作为广告中的字符串字段上传,但当将文件添加到正文时,我遇到了这个错误:“异常”:“org.springframework.web.multipart.support.MissingServletRequest estPartException”,“消息”:“所需的请求部分'file'不存在”。我在这里寻找有关此问题的答案,但没有任何帮助。我将很高兴得到任何帮助。 我的控制器: 我的

  • 我在客户端中有以下代码: 这个代码就是你所说的上面的代码: 它在服务器上给我的错误:已解决[org.springframework.web.multipart.support.MissingServletRequestPartException:所需的请求部分“file”不存在] 它在客户端给我的错误:org.springframework.web.client.HttpClientErrorEx