文件上传不适用于 Internet Explorer 8 和 9
file upload not working on internet explorer 8 and 9
function uploadFile(){
var file = $("file1").files[0];
var formdata = new FormData(); formdata.append("file1", file);
var ajax = new XMLHttpRequest();
ajax.upload.addEventListener("progress", progressHandler, false);
ajax.addEventListener("load", completeHandler, false);
ajax.addEventListener("error", errorHandler, false);
ajax.addEventListener("abort", abortHandler, false);
ajax.open("POST", "upload.php";
ajax.send(formdata);
}
错误 1:无法获取 属性“0”的值:对象为空或未定义
错误 2:不支持 ForData。
IE8 或 IE9 不支持 FormData
API。它仅在 IE10 中添加。如果你想支持这些旧的浏览器,那么你不能使用现代的 HTML5 APIs.
有一个 jQuery 表单插件,它可以在旧的 IE 版本中运行,并且可以让您通过 ajax 上传文件。我自己用过,非常有效。您可以在这里下载:http://malsup.com/jquery/form/。你可能需要稍微重写你的代码才能使用它,因为它在概念上与 HTML5 FormData API 完全不同,但至少你会得到一些适用于所有浏览器的东西你要支持
您也可以尝试查看是否有 FormData 的 polyfill 可以让您继续使用现有代码。很快 google 出现了 this one, which I found listed here。我没有尝试过,所以不能保证,但是 Modernizr 在该列表中列出的 polyfill 通常都不错。
function uploadFile(){
var file = $("file1").files[0];
var formdata = new FormData(); formdata.append("file1", file);
var ajax = new XMLHttpRequest();
ajax.upload.addEventListener("progress", progressHandler, false);
ajax.addEventListener("load", completeHandler, false);
ajax.addEventListener("error", errorHandler, false);
ajax.addEventListener("abort", abortHandler, false);
ajax.open("POST", "upload.php";
ajax.send(formdata);
}
错误 1:无法获取 属性“0”的值:对象为空或未定义
错误 2:不支持 ForData。
IE8 或 IE9 不支持 FormData
API。它仅在 IE10 中添加。如果你想支持这些旧的浏览器,那么你不能使用现代的 HTML5 APIs.
有一个 jQuery 表单插件,它可以在旧的 IE 版本中运行,并且可以让您通过 ajax 上传文件。我自己用过,非常有效。您可以在这里下载:http://malsup.com/jquery/form/。你可能需要稍微重写你的代码才能使用它,因为它在概念上与 HTML5 FormData API 完全不同,但至少你会得到一些适用于所有浏览器的东西你要支持
您也可以尝试查看是否有 FormData 的 polyfill 可以让您继续使用现有代码。很快 google 出现了 this one, which I found listed here。我没有尝试过,所以不能保证,但是 Modernizr 在该列表中列出的 polyfill 通常都不错。