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。
答案 0 :(得分:0)
IE8或IE9不支持FormData
API。它只在IE10中添加。如果您想支持这些旧版浏览器,则无法使用现代HTML5 API。
有一个jQuery Forms插件可以在旧的IE版本中运行,并允许您通过ajax上传文件。我自己使用它,它非常有效。您可以在此处下载:http://malsup.com/jquery/form/。您可能需要重新编写代码才能使用它,因为它在概念上与HTML5 FormData API完全不同,但至少您可以获得适用于您想要的所有浏览器的内容支持。
您还可以尝试查看是否有FormData的填充,这样您就可以继续使用现有代码了。一个快速谷歌出现了this one,我发现列出了here。我没有尝试过,所以无法保证,但Modernizr在该清单上列出的polyfill通常都很不错。