2014-10-05 2 views
1

У меня есть следующий сценарий, чтобы получить данные файла с типом входного файла:FormData в IE 11 не определен

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 для получения объекта, то «файлы» по какой-то причине не определены.

EDIT: читайте больше в Интернете, похоже, это может быть потому, что IE не предоставляет доступ к вводу до тех пор, пока форма не будет отправлена, однако я использую ajax для загрузки файла, поэтому я не могу его отправить.

EDIT2: Я хотел бы также отметить, что этот код называется на событии изменения входного файла, не уверен, если это имеет какое-то отношение, но лучше упомянуть его

ответ

7

После проверки docmode инструменты разработчика IE оказалось она вернулась к 9 по какой-то причине был старший мета-тег для X-UA-Compatible на моей главной странице, которую я изменил на:

<meta http-equiv="X-UA-Compatible" content="IE=edge"> 

И FormData не было никаких проблем.

+2

Не работает для меня, объект все еще не добавляет – Clarence

Смежные вопросы