2014-02-18 2 views
0

Кто-нибудь знает, как получить значение <input type="file">, чтобы пройти через вызов Ajax?Как получить значение входного файла вместо использования FormData

Вместо:

// more... 

function uploadFile(event) { 
     var file = event.target.files; 
     event.stopPropagation(); 
     event.preventDefault(); 

     var data = new FormData(); 

     $.each(
      file, 
      function(key, value) { 
       data.append(key, value); 
      } 
     ); 

     $.ajax({ 
      url: 'site/upload', 
      type: 'POST', 
      data: data, 
// more... 

The uploadFile() вызывается изменением входного файла. Проблема с использованием объекта FormData заключается в том, что он не поддерживается в IE 10-.

+0

вы можете просто отправить() форму или файл, но многие люди не знают, что ... – dandavis

+0

я думал, что IE9 поддерживает ajax2 ... – dandavis

+1

Нет, только IE10 + –

ответ

5

Как получить значение входного файла вместо использования FormData

Вы не можете.

Без FormData возможны только варианты Flash и отправка в iframe.

Я предлагаю использовать FormData, если он в настоящее время доступен, иначе просто отправьте его в iframe или вызовите обратную передачу полной страницы.

Или вы можете использовать один из многих плагинов, которые уже делают это за вас.

+0

как насчет FileReader(), делает это не считать? он должен: http://caniuse.com/filereader – dandavis

+0

Он также не поддерживается IE <10, так что это не помогает. https://developer.mozilla.org/en-US/docs/Web/API/FileReader –

+0

oh, я вижу, думал, что op спрашивает о ie10 ... – dandavis

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