1 回答

TA貢獻1802條經驗 獲得超5個贊
要通過 ajax 上傳文件,您可以使用FormData。但首先你需要查看你的瀏覽器是否支持 XHR2 ,并不是每個瀏覽器都支持通過 ajax 發送文件。
因此,如果您想讓腳本在每個瀏覽器中工作,最好采取解決辦法,(嘗試在隱藏輸入中執行 Base64,或者使用 iram,以便 iram 單獨刷新)
支持XHR2 的瀏覽器
因此,要添加 formData,您可以在 js 腳本中做一些更改:
??var?formData?=?new?FormData($('#yourform')[0]);
或者如果您不想在 yout html 中創建任何表單:
var formData = new FormData();
formData.append('name',$('#name').val());
formData.append('image',$('#image').get(0).files[0]);
。 編輯
你也可以嘗試這個:
<input type="file" onchange="PrepareFile(this)" >
并初始化一個全局formData
async function PrepareFile(file)?
{? ? ? ? ?
? ? formData.append("file", file.files[0]);
}
.
... // inside? ?$.ajax({
? ? data: formData,
? ? dataType: 'json',
? ? mimeType: 'multipart/form-data', // this too
? ? contentType: false,
? ? cache: false,
? ? processData: false,
....
或者您可以使用XMLHttpRequest,在這種情況下,您將放棄 ajax 僅適用于 javascript ,但不適用于 IE<10。
- 1 回答
- 0 關注
- 115 瀏覽
添加回答
舉報