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 关注
- 86 浏览
添加回答
举报