亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

請求被拒絕,因為沒有找到多部分邊界 angular+spring

請求被拒絕,因為沒有找到多部分邊界 angular+spring

喵喔喔 2022-11-30 16:36:32
我正在嘗試將最近使用 Angular2 下載的文件上傳到 Spring API Rest。問題是(在 spring 應用程序上顯示)...請求被拒絕,因為沒有找到多部分邊界在 org.apache.tomcat.util.http.fileupload.FileUploadBase$FileItemIteratorImpl.(FileUploadBase.java:831) ~[tomcat-embed-core-8.5.28.jar:8.5.28] 在 org.apache.tomcat.util .http.fileupload.FileUploadBase.getItemIterator(FileUploadBase.java:256)~[tomcat-embed-core-8.5.28.jar:8.5.28] 在 org.apache.tomcat.util.http.fileupload.FileUploadBase.parseRequest( FileUploadBase.java:280) ~[tomcat-embed-core-8.5.28.jar:8.5.28] 在 org.apache.catalina.connector.Request.parseParts(Request.java:2869) ~[tomcat-embed-core -8.5.28.jar:8.5.28] 在 org.apache.catalina.connector.Request.parseParameters(Request.java:3216) ~[tomcat-embed-core-8.5.28.jar:8.5.28] 在 org .apache.catalina.connector.Request.getParameter(Request.java:1137) ~[tomcat-embed-core-8.5.28.jar:8.5.28]在客戶端,請求以“multipart/form-data”作為內容類型發送。我該如何解決?文件下載器服務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'});  };和春天的一面@PostMapping("/uploadFile")    public UploadFileResponse uploadFile(@RequestParam("file") MultipartFile file) {        return ...;    }感謝您的幫助
查看完整描述

3 回答

?
慕妹3242003

TA貢獻1824條經驗 獲得超6個贊

嘗試這個 ,


 const formData = new FormData();

 formData.append("file", file);

 formData.append("reportProgress", true);

使用http客戶端,


 return this.httpclient.post(this.urlUpload, formData);


查看完整回答
反對 回復 2022-11-30
?
嗶嗶one

TA貢獻1854條經驗 獲得超8個贊

你有沒有設置內容類型?如果是這樣,請將其刪除。


headers:{

        "Content-Type":"multipart/form-data", // remove it

},

前端:


 const formData = new FormData();

    formData.append("file", file);

    formData.append("reportProgress", "true");


return this.http.post<void>(this.API_URL + '/upload', formData);

后端:


 @Operation(description = "Upload File")

    @ApiResponses(value = {

            @ApiResponse(responseCode = "201", description = "File Uploaded successfully"),

            @ApiResponse(responseCode = "400", description = "Problem during file upload ")

    })

    @PostMapping(consumes = MediaType.MULTIPART_FORM_DATA_VALUE)

    @ResponseStatus(value = HttpStatus.CREATED)

    public void upload(@RequestPart("file") final MultipartFile file) {

        //action;

    }


查看完整回答
反對 回復 2022-11-30
?
慕桂英3389331

TA貢獻2036條經驗 獲得超8個贊

你真的發送FormData到你的服務器嗎?


嘗試將文件包裝在一個FormData對象中,HttpClient以便自動添加多部分邊界。


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);

  }


查看完整回答
反對 回復 2022-11-30
  • 3 回答
  • 0 關注
  • 147 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號