Comment puis-je vérifier si le navigateur prend en charge le téléchargement de fichiers HTML5 (objet FormData)?
var fd = new FormData();
Suite à la réponse de ce post , mais le code ne renvoie pas de réponse correcte sur le navigateur,
window.onload = function()
{
if (!!window.FileReader)
{
alert('supported');
}
else
{
alert('not supported');
}
}
Firefox - supported
Chrome - supported
Opera - supported
Safari - not supported
IE9 - not supported
Mais la bonne prise en charge du navigateur devrait être,
Firefox - supported
Chrome - supported
Opera - not supported
Safari - supported
IE9 - not supported
J'ai testé le téléchargement de fichiers html 5 sur Opera et ce n'est pas travailler à coup sûr.
Je suis sûr que safari prend en charge le téléchargement de fichiers html 5.
Essayez if( window.FormData === undefined )
ou if( window.FormData !== undefined )
.
De 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));
};
En tant que FormData, la possibilité d'en envoyer () et la propriété upload (et son événement onprogress) font tous partie de XMLHttpRequest niveau 2, vous pouvez tester .upload pour voir si vous avez un niveau 2. Je n'ai pas avoir un Mac à portée de main, mais la fonction (malheureusement, mais correctement) renvoie false pour Opera 11.50 (et true pour Firefox 4).
function supportFormData() {
return !! window.FormData;
}
Source: https://www.new-bamboo.co.uk/blog/2012/01/10/ridiculously-simple-ajax-uploads-with-formdata/
Ceci est le one-liner que j'utilise pour vérifier si le navigateur prend en charge FormData et la progression du téléchargement, dans jQuery:
var xhr2 = !! ( window.FormData && ("upload" in ($.ajaxSettings.xhr()) );
Vous pouvez utiliser la solution de contournement fournie par cette bibliothèque. https://github.com/francois2metz/html5-formdata
Sur Safari 5.1.7, Firefox <6, Opera <12.14 les données du formulaire sont prises en charge mais elles sont boguées.
Safari renverra la taille du fichier 0
Opera ne prend pas en charge la méthode d'ajout de données de formulaire
firefox <6 ne fonctionne pas correctement