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

请求被拒绝,因为未找到多部分边界

安坚诚
2023-03-14

我正在尝试将最近使用Angular2下载的一个文件上传到Spring API Rest。

问题是(在spring应用程序上显示)。。。

请求被拒绝,因为找不到多部分边界

在org。阿帕奇。公猫util。http。文件上传。FileUploadBase$FileItemIteratorImpl。(FileUploadBase.java:831)~[tomcat-embed-core-8.5.28.jar:8.5.28]位于org。阿帕奇。公猫util。http。文件上传。FileUploadBase。getItemIterator(FileUploadBase.java:256)~[tomcat-embed-core-8.5.28.jar:8.5.28]位于org。阿帕奇。公猫util。http。文件上传。FileUploadBase。parseRequest(FileUploadBase.java:280)~[tomcat-embed-core-8.5.28.jar:8.5.28]位于org。阿帕奇。卡塔琳娜。连接器。要求org上的parseParts(Request.java:2869)~[tomcat-embed-core-8.5.28.jar:8.5.28]。阿帕奇。卡塔琳娜。连接器。要求org上的parseParameters(Request.java:3216)~[tomcat-embed-core-8.5.28.jar:8.5.28]。阿帕奇。卡塔琳娜。连接器。要求getParameter(Request.java:1137)~[tomcat-embed-core-8.5.28.jar:8.5.28]

在客户端,请求以“多部分/表单数据”作为内容类型发送。

我该怎么修?

文件下载服务

upload(file) {
const formData = new FormData();
formData.append('file', file);
    const req = new HttpRequest('POST', this.urlUpload, file, {
      headers: new HttpHeaders({'Content-Type':'multipart/form-data'}),
      reportProgress: true
    });
    return this.http.request(req);
  }

应用程序。组成部分

  upload() {
     let file = this.generate_dummy_file(50000000);
     this.downloader.upload(file).subscribe( event => {
        if (event.type === HttpEventType.UploadProgress) {
        } else if (event instanceof HttpResponse) {
          console.log('File is completly uploaded!');
        }
      });


    }

  generate_dummy_file(size) {
    return new Blob([new ArrayBuffer(size)], {type: 'multipart/form-data'});
  };

还有Spring的一面

@PostMapping("/uploadFile")
    public UploadFileResponse uploadFile(@RequestParam("file") MultipartFile file) {
        return ...;
    }

谢谢你的帮助

共有2个答案

艾翼
2023-03-14

你真的在向你的服务器发送FormData

尝试在HttpClientFormData对象中包装文件,以自动添加多部分边界。

upload(file) {
    const formData = new FormData();
    formData.append('file', file);
    const req = new HttpRequest('POST', this.urlUpload, formData, {
      headers: new HttpHeaders({'Content-Type':'multipart/form-data'}),
      reportProgress: true
    });
    return this.http.request(req);
  }

邓仲卿
2023-03-14

试试这个,

 const formData = new FormData();
 formData.append("file", file);
 formData.append("reportProgress", true);

使用http客户端,

 return this.httpclient.post(this.urlUpload, formData);
 类似资料:
  • 我正在用Spring rest上传文件 我正在尝试发送内容类型为multipart/form data或multipart/form data的请求 然而,我一直得到一个错误:请求被拒绝,因为没有找到多部分边界 我不确定这是rest中的问题还是我的请求被打乱了。我正在使用restclient,将内容类型设置为多部分/表单数据,并从restclient发送文件 错误: 这是我的代码 网状物xml d

  • 我正在开发一个文件上传功能。为此,我有一个spring boot web服务和客户机。 WebService:- 如果我删除文件并给出一个字符串,那么调用将继续进行。可能是什么问题。

  • 我为Spring3Rest多部分文件上传做了一个POC。它工作正常。但是当我尝试与我的应用程序集成时,我遇到了问题。 它抛出以下异常: 如果我在代码的任何部分出错了,请告诉我。 豆: 控制器:

  • 我想上传一个文件并发布到我的服务器以获得响应。 在模板中,我使用了类似的内容: 这是我的角度控制器和服务: 在服务器端,我开发了一个这样的REST服务: 以下是发送到服务器的请求,如果put * * ' Content-Type ':' undefined ' * *: 如果我说 Tring this,抛出以下异常: org . spring framework . web . multipart

  • 我正在用spring boot和带有postman chrome插件的Web服务尝试这一点。 在postman中,我得到了以下例外。 在控制器中,我指定了以下代码 这里我指定文件处理程序代码

  • 问题内容: 我为Spring 3 Rest Multipart文件上载了POC。它的工作正常。但是,当我尝试与我的应用程序集成时,我遇到了问题。 它引发以下异常: 如果我在代码的任何部分有误,请告诉我。 Beans: Controller: 问题答案: 问题不在你的代码中,而是在你的请求中。你的多部分请求中缺少边界。正如规范中所说: 多部分实体的Content-Type字段需要一个参数“边界”,该