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

Springboot必需的请求部分“文件”不存在

赫连泰宁
2023-03-14

我正在开发一个文件上传控制器,目前在Postman中测试时出现以下错误。

{
    "timestamp": "2019-04-18T14:53:07.988+0000",
    "status": 400,
    "error": "Bad Request",
    "message": "Required request part 'file' is not present",
    "path": "/upload"
}

目前我的控制器非常简单,但首先我需要克服这个问题。

我已经查看了[此处]给出的答案(上传文件springboot必需的请求部分“file”不存在“上传文件springboot必需的请求部分文件不存在”)!

但不幸的是,这里的建议并没有解决我的问题

如果您能帮助解决此错误,我们将不胜感激

这是我的控制器:

@Controller
public class UploadController {

@ResponseBody
@RequestMapping(value = "/upload", method = RequestMethod.POST)
public boolean upload(@RequestParam("file") MultipartFile file) throws IOException {

        try {
            if (!file.isEmpty()) {
                return true;
            } else {
                return false;
            }
        }
        catch(Exception e){
            e.printStackTrace();
            return false;
        }

    }
}

共有3个答案

郭胤
2023-03-14

在“钥匙”下的邮递员中,我没有设置任何内容。我需要将其设置为“文件”。我之前假设我所要做的就是单击下拉菜单并选择文件。

我将在下面包括所有更新的代码

链接到邮递员图片

@RestController
public class UploadController {

    @PostMapping("/upload")
    @ResponseBody
    public boolean upload(@RequestParam("file") MultipartFile file) {
        try{
            if(file.isEmpty() ==false){
                System.out.println("Successfully Uploaded: "+ file.getOriginalFilename());

                return true;
            }
            else{
                System.out.println("ERROR");
                return false;
            }
        }
        catch(Exception e){
            System.out.println(e);
            return false;
        }
    }
}
壤驷深
2023-03-14

因为你没有提到你的请求模型,让它成为EarningRequest,所以知道你的模型数据是:

class EarningRequest{
   private FilePart file;
   //and other data which you want to add.
   //add the getter setters also, so that jackson can map the json to this pojo
}

@RestController
public class UploadController {

    @PostMapping(value = "/upload",consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
    public boolean upload (@ModelAttribute EarningRequest earningRequest){ 
         //earningRequest contains the file
         //you can get the filePart as earningRequest.getFile()
         return true;
    }

}

黎浩然
2023-03-14

如果不知道您是如何发送数据的,这很困难,但这是我如何解决通过@RestController发送multipart/form-data的问题:

@PostMapping(value = "/foo", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
ResponseEntity fileUpload(@Requestparam("bar") LinkedList<MultipartFile> payload) {
    MultipartFile file = payload.get(0)
    ...

在我的例子中,Spring只接受链表之外的任何东西,但那是作为带有字段名称栏的Angular2 FormData对象发送的表单数据。

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

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

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

  • 我有一个应用程序,它使用spring boot和嵌入式Tomcat进行开发,并在生产服务器上部署在JBoss 6.4 EAP上。在添加对JBoss的支持后,多部分文件上传停止工作。在这两个容器上,它都抛出了MissingServletRequestPartException。 将MultipartConfigElement添加到ServletSynstrationBean修复了tomcat上的此问

  • 我试图使用Angular 4.0和SpringBoot应用程序上传一个json文件。我已经检查并尝试了Stackoverflow的其他解决方案,但我无法找出确切的问题是什么。 我收到400 BAD Request Error消息,其中包含消息:不存在所需的请求部分“文件”。 我的RestController看起来像这样(出于测试目的),但不幸的是什么也没发生。 我在应用程序配置文件中添加了以下内容

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