2014-09-22 5 views
1

Я создал простую директиву перетаскивания для загрузки файлов, но моя основная проблема заключается в том, что мне нужно иметь поддержку IE8/9, поэтому принимая во внимание, что FormData не поддерживается, как я могу сделать многократную загрузку файла без использования объекта FormData?Загрузка файла AngularJs без FormData

Заранее спасибо.

EDIT: Что я пытаюсь сделать сделать это:

$scope.uploadFile = function() { 
     var upload = $http.post('awesomeFileThatWantsMultipleFilesUploaded.php', 
       angular.element(document.getElementsByClassName('droppable')).scope().files, 
       {withCredentials: true, 
        headers: {'Content-Type': undefined }, 
        transformRequest: angular.identity}) 
      .success(function (response) { 
       }); 

     return upload; 
    } 

Но проблема в том, что, когда браузер не поддерживает FormData, я инициализировать переменную files в array, а затем я нажимаю каждый файл на переменную. Если файл FormData, это работает.

+0

Этот модуль https://github.com/nervgh/angular-file-upload хорош. Он поддерживает собственные загрузки HTML5 с использованием FormData, но ухудшает устаревший метод загрузки iframe для старых браузеров. – Nils

ответ

0

Не делайте это вручную. Это довольно грязно, и у вас всегда будут проблемы. Вы можете использовать polyfill для данных формы, как moxie, для углового я использую angular-file-upload есть даже способ загрузить на S3 из браузера (here)

Если вы хотите сделать это вручную, проверьте код в этих хранилищах и найти некоторые идеи

+0

У Plupload нет поддержки для IE9, а на основе moxie. angule-file-upload, как вы можете видеть [здесь] (https://github.com/danialfarid/angular-file-upload/blob/master/dist/angular-file-upload.js) в строке 89, также используется formData, которого я хочу избежать, из-за поддержки ie9. –

+0

https://github.com/danialfarid/angular-file-upload#-old-browsers да вам нужен полисполк html5, проверьте проблемы, чтобы избежать проблем с этими браузерами – donnanicolas