使用Postman上傳文件到Asp.net.Core總是為null的解決辦法


.net core 后台開發好文件上傳接口后,用httpclient測試上傳文件是可以正常接收,說明后台接口是沒有問題的,但是在postman里使用form-data表單選擇文件提交時后台總是獲取不到IFormFile,

 

 即使在headers中加上Content-Type:multipart/form-data也不行,無賴只好利用fiddler抓包對比兩邊報文的差異,報文對比如下:

HttpClient請求報文:

POST http://127.0.0.1:49551/api/order/import HTTP/1.1
Host: 127.0.0.1:49551
Content-Type: multipart/form-data; boundary="afwsef"
Content-Length: 10839

--afwsef
Content-Disposition: form-data; name=file; filename="=?utf-8?B?5qih5p2/Lnhsc3g=?="; filename*=utf-8''%E6%A8%A1%E6%9D%BF.xlsx

PK     ! A7  n     [Content_Types].xml  (                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   T n 0 W ?D V      [$   x X$  ( }'fQU  %Ql [& <  &YB@ l. YO$`
   r = H E   V    5 
  ӵ L  b.j" "%5 
**********省略

postman請求報文:

POST http://127.0.0.1:49551/api/order/import HTTP/1.1
Content-Type: multipart/form-data
Accept: */*
Cache-Control: no-cache
Host: 127.0.0.1:49551
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Content-Length: 11041

----------------------------844787738171226849530776
Content-Disposition: form-data; name="file"; filename="導入訂單模板.xlsx"; filename*=UTF-8''%E5%AF%BC%E5%85%A5%E8%AE%A2%E5%8D%95%E6%A8%A1%E6%9D%BF.xlsx
Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet

PK     ! A7  n     [Content_Types].xml  (                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   T n 0 W ?D V      [$   x X$  ( }'fQU  %Ql [& <  &YB@ l. YO$`
******省略

對比發現HttpClient在 Content-Type: multipart/form-data;后面加了  boundary="afwsef"  相當於隨機分隔符,然后手動在postman Headers  Content-Type: multipart/form-data; 后面加上boundary="隨機字符",果然可以正常發送文件了,還要注意一個細節就是文件表單的key一定要是file才可以,填其他字符或不填提交過去IFormFile也是為null的。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM