9
votes

Comment vérifier si xmlhttprequest envoyer () prend en charge le fichier

La méthode d'envoi XMLHTTPRequest de Safari () prend en charge un argument de fichier. Firefox ne (pas encore).

Comment puis-je vérifier si cela est pris en charge? Dans Firefox, cela se comportera simplement comme si une chaîne vide était passée.

J'essaie d'éviter de faire une détection de version du navigateur.

Edit: FF 3.6 semble le prendre en charge, mais la question est toujours pertinente pour les versions plus anciennes ou d'autres navigateurs.


1 commentaires

firefox <= 3.5 Support Soutien Fichier de cette manière: xhr.sendasbiny (fichier.files [0] .getasbinary ()); où file.files [0] .getasbinary () est le point de fichier d'entrée


4 Réponses :


2
votes

Il est possible que si l'objet de fichier puisse être créé, que l'envoi de l'envoi. Dans Gecko (Firefox,) qui sera vrai (le fichier et la compatibilité du fichier d'envoi ont été libérés dans 1,9 selon MDC)


1 commentaires

En d'autres termes, si (type de fichier === "objet") {...}



-1
votes

Si un ancien navigateur pourrait se renifler de ne pas vous aider? Jquery.support pourrait être suffisant?


1 commentaires

"J'essaie d'éviter de faire la détection de la version du navigateur." En outre, qui testez-vous dans les tests JQuery.Support pour cela.



0
votes

Vous devriez essayer d'utiliser fonction.length . < / p>

Modifier

Cette solution ne fonctionnera pas car le fichier n'est pas transmis comme un argument supplémentaire, comme indiqué par Rnicholson.


2 commentaires

Je ne comprends pas comment cela aiderait. (nouvelle fenêtre.xmlhttprectes) .Send.length retournerait 1 dans les deux navigateurs, n'est-ce pas?


En effet, ma faute. Je viens de supposer que "fichier" serait un argument supplémentaire. Devrais-je supprimer la réponse?



0
votes

Je pense que quelque chose comme ceci est ce que vous recherchez probablement: xxx


0 commentaires