Ali*_*ice 12 ajax jquery internet-explorer file-upload multipartform-data
我需要使用必须在IE9中支持的ajax上传文件.我正在使用这里提到的FormData .我的代码看起来像这样:
var files = new FormData();
JQuery.each($('#file')[0].files, function (i, file) {
files.append('file', file);
});
$.ajax({
type: "POST",
url: '/url',
cache: false,
contentType: false,
processData: false,
data: files,
...
});
Run Code Online (Sandbox Code Playgroud)
这在Safari和Firefox中工作正常,但在IE9中失败,因为IE9不支持FormData.我尝试通过设置发送作为文件:
data: $('#file')[0].files[0]
contentType: 'multipart/form-data'
Run Code Online (Sandbox Code Playgroud)
这会失败,因为数据是以url编码的形式发送的,并且无法在java端解析.任何有关如何解决这个问题的帮助或指针将不胜感激.我需要适用于所有浏览器的东西.
编辑:我不需要任何上传进度条,因为文件通常很小.我不需要上传多个文件.我只需要一个文件上传.
Dan*_*.K. 18
不幸的是你不能使用Ajax(XMLHttpRequest换句话说)发送的文件,但你可以实现使用一个类似的行为<iframe/>有<form method="post" enctype="multipart/form-data"/>一个包含<input type="file"/>它发送使用了"自然"的方式,用户选择的文件.您可以使用javascript调用来自父文档的form.submit()then poll,<iframe/>以检查文件上载过程是否已完成.
jQuery有很多很酷的插件可以完成这项工作,例如,我最喜欢的插件.
| 归档时间: |
|
| 查看次数: |
62270 次 |
| 最近记录: |