我使用以下脚本从输入类型的文件中获取文件数据:
var uploadfiles = $("#upFile").get(0);
var uploadedfiles = uploadfiles.files;
var fromdata = new FormData();
for (var i = 0; i < uploadedfiles.length; i++) {
fromdata.append(uploadedfiles[i].name, uploadedfiles[i]);
}
// ajax code omitted that uploads file这在我测试过的所有浏览器中都工作得很好,除了IE 11。在这种情况下,它不理解FormData()是什么??我现在已经在网上阅读了很多不同的变通方法,但是它们都不起作用,无论我如何尝试,都无法从输入中获得文件的详细信息。还有没有人有这方面的帮助呢?即使我尝试使用jQuery来获取对象,但由于某种原因,“文件”是未定义的。
编辑:在线阅读更多,这可能是因为IE在表单提交之前不提供输入的访问权限,但是我使用ajax上传文件,所以我不能真正提交它。
EDIT2:我还应该提到,这段代码是在文件输入的更改事件上调用的,不确定它是否有相关性,但最好还是提一下
发布于 2019-08-23 20:43:21
IE11不完全支持FormData。
具体地说: FormData实例没有方法'set‘。您需要使用append方法,如下所示:
const formData = new FormData();
formData.append('your_key_name', 'your_value_goes_here');将meta http-equiv设置为IE=edge将不会使“set”属性起作用,因此不需要该属性。
参考:https://developer.mozilla.org/en-US/docs/Web/API/FormData/append
https://stackoverflow.com/questions/26206105
复制相似问题