spring無法接收上傳檔案

2022-06-11 08:39:17 字數 1374 閱讀 2829

前端用ajax方式提交表單,**類似於下面的例子。

var formdata = new

formdata();

//html 檔案型別input,由使用者選擇

$.ajax(

});

後端用spring接收,具體方法見:

前端提交請求後,後端spring報錯:

fileuploadexception: the request was rejected because no multipart boundary was found

一、前端提交時嘗試各種contenttype

後端始終接收不到檔案流。

二、直接用html中最原始的form提交

<

form

id="myform"

name

="myform"

method

="post"

enctype

="multipart/form-data"

action

="url"

>

<

div>

<

input

type

="file"

id="whitelist"

name

="whitelist"

>

div>

<

input

type

="submit"

value

="submit!"

>

form

>

後端收到了檔案,因此定位是前端的問題。

比較ajax提交和原生form提交的請求頭後發現:雖然原生form指定了enctype="multipart/form-data",但傳送出去的contenttype變成了content-type: multipart/form-data; boundary=----webkitformboundary0e8evhytbobtryio,瀏覽器幫我加了個boundary。然後重新去網上看了下multipart/form-data,明白了multipart/form-data要用boundary分割引數,因此boundary必不可少。

原生form提交的時候雖然指定enctype,但瀏覽器會自動加上boundary。ajax請求如果指定了content-type,瀏覽器不會自動加上boundary,還是 multipart/form-data,因此缺少了boundary,導致後端報錯。

在現象裡的**的注釋裡已經寫出來了,ajax提交檔案的時候別指定contenttype就行了,瀏覽器會為contenttype自動加上帶boundary的 multipart/form-data。

php接收上傳檔案

單檔案上傳 name files file name echo name.echo files file size echo files file type echo files file error move uploaded file files file tmp name files file...

PHP接收上傳檔案

這星期一直再搞php,涉及到檔案上傳的部分有些遺忘,這裡記錄一下 用html的表單模擬乙個檔案上傳的post請求,如下 file upload 注意 要確保檔案上傳表單的屬性是enctype multipart form data 否則檔案上傳不了 首先,需要解釋一下php的全域性變數 files,...

spring檔案上傳

案例1關於上傳檔案 首先在myspring servlet.xml配置檔案中新增上傳元件 class org.springframework.web.multipart.commons.commonsmultipartresolver 具體案例參考 upload檔案 這裡值得我們注意的是上傳中文會亂...