【发布时间】:2012-11-20 22:36:34
【问题描述】:
我需要使用 IE9 必须支持的 ajax 上传文件。我正在使用 here 中提到的 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,
...
});
这在 Safari 和 Firefox 中运行良好,但在 IE9 中失败,因为 IE9 不支持 FormData。我尝试通过设置以文件形式发送:
data: $('#file')[0].files[0]
contentType: 'multipart/form-data'
这会失败,因为数据是以 url 编码的形式发送的,并且无法在 java 端解析。任何有关如何解决此问题的帮助或指示将不胜感激。我需要适用于所有浏览器的东西。
编辑:我不需要任何上传进度条,因为文件通常很小。我不需要上传多个文件。我只需要上传一个文件。
【问题讨论】:
-
我在这里发现了一个类似的问题:stackoverflow.com/questions/2320069/jquery-ajax-file-upload
-
我不能使用 '
标签: jquery ajax internet-explorer file-upload multipartform-data