Подтвердить что ты не робот

Как проверить, поддерживает ли браузер поддержку загрузки файла HTML5 (объект FormData)?

Как проверить, поддерживает ли браузер поддержку загрузки файла HTML5 (объект FormData)?

var fd = new FormData();

Следуя ответам на этот пост, но код не возвращает правильный ответ о браузере,

window.onload = function()
{
 if (!!window.FileReader)
 {
  alert('supported');
 }
 else
 {
  alert('not supported');
 }
}


Firefox - supported
Chrome - supported
Opera - supported
Safari - not supported
IE9 - not supported

Но правильная поддержка браузера должна быть,

Firefox - supported
Chrome - supported
Opera - not supported
Safari - supported
IE9 - not supported

Я протестировал загрузку файла html 5 на Opera и уверенно работает не.

Я уверен, что safari поддерживает загрузку файла html 5.

4b9b3361

Ответ 1

Попробуйте if( window.FormData === undefined ) или if( window.FormData !== undefined ).

Ответ 2

С http://blog.new-bamboo.co.uk/2010/7/30/html5-powered-ajax-file-uploads

function supportAjaxUploadProgressEvents() {
    var xhr = new XMLHttpRequest();
    return !! (xhr && ('upload' in xhr) && ('onprogress' in xhr.upload));
};

Как FormData, способность send() и свойство upload (и его событие onprogress) являются частью XMLHttpRequest уровня 2, вы можете проверить на .upload, чтобы узнать, есть ли у вас уровень 2. я не имеют Mac, но функция (к сожалению, но правильно) возвращает false для Opera 11.50 (и true для Firefox 4).

Ответ 4

Это один лайнер, который я использую, чтобы проверить, поддерживает ли браузер FormData и загружает прогресс, в jQuery:

 var xhr2 = !! ( window.FormData && ("upload" in ($.ajaxSettings.xhr()) );

Ответ 6

В Safari 5.1.7 Firefox < 6, Opera < 12.14 данные формы поддерживаются, но это ошибка.

  • Safari вернет размер файла 0

    Opera не поддерживает метод добавления данных формы

    firefox < 6 работает неправильно

Ответ 7

Вам нужно проверить, поддерживает ли браузер API-интерфейс HTML5. Я делаю это, проверяя, установлена ​​ли функция FileReader, если она не установлена, это означает, что браузер не поддерживает API-интерфейс файла.

// Check if window.fileReader exists to make sure the browser supports file uploads
if (typeof(window.FileReader) == 'undefined') 
    {
        alert'Browser does not support HTML5 file uploads!');
    }