comment obtenir les fichiers de & lt; input type = 'fichier' ... / & gt; (Indirect) avec javascript
J'ai un problème avec un "tag" dans le non-IE navigateurs
<input type="file" ...
Je suis en train d'écrire mon uploader , juste à l'aide de javascript et asp.net.
Je n'ai pas de problème de téléchargement de fichiers.
Mon problème s'est produit Lorsque j'ai voulu obtenir mes fichiers non IE navigateurs avec
<input type="file" ...
Je ne veux pas utiliser directement à partir de input
parce que son apparence ne change pas correctement
J'ai écrit ce code pour obtenir des fichiers à partir du disque dur :
function $tag(_str_tag) {
return document.getElementsByTagName(_str_tag);
}
function $create(_str_tag) {
return document.createElement(_str_tag);
}
function $open_file() {
_el_upload = $create("input");
_el_body = $tag("body")[0];
_el_upload.setAttribute("type", "file");
_el_upload.style.visibility = "hidden";
_el_upload.setAttribute("multiple", "multiple");
_el_upload.setAttribute("position", "absolute");
_el_body.appendChild(_el_upload);
_el_upload.click();
_el_body.removeChild(_el_upload);
return _el_upload.files;
}
Dans IE, ça fonctionne très bien et retourne à mes fichiers actuellement ;
Dans Chrome Et Firefox , Après le chargement de fichiers "boîte de dialogue de saisie" , il ne peut pas retourner n'importe quel fichier.
Et Opera et Safari sont complètement out.
Je peut le fixer avec ce truc , mais il n'est pas bon en gros.
_el_upload.click();
alert();
Je pense que le "rappel" ou "fonction d'attente" peut remédier à ce problème , mais je ne peut pas le manipuler.
source d'informationauteur Shamshirsaz.Navid
Vous devez vous connecter pour publier un commentaire.
Si vous êtes à la recherche pour le style d'un fichier d'entrée de l'élément, regardez boîte de dialogue ouvrir fichier en javascript. Si vous êtes à la recherche d'attraper les fichiers associés à un fichier de l'élément d'entrée, vous devez faire quelque chose comme ceci:
Voir cette MDN article pour plus d'info sur le
FileList
type.Noter que le code ci-dessus ne fonctionne que sur les navigateurs qui prennent en charge les Fichiers de l'API. Pour IE9 et plus tôt, par exemple, vous n'avez accès qu'au nom de fichier. L'élément d'entrée n'a pas de
files
de la propriété de non-Fichier API navigateurs.