2010-03-29 4 views

Répondre

4

Vous ne pouvez pas.

Vous devez utiliser une alternative, par ex. un téléchargeur basé sur Flash comme SWFUpload.

2

Plusieurs fichiers que vous pouvez faire, via plusieurs éléments <input type="file">. HTML5 (au moins) fournit également l'attribut multiple pour un seul élément <input type="file">, qui est pris en charge par Chrome et Firefox au moins (mais pas IE).

restriction Taille du fichier que vous ne pouvez pas faire avec JavaScript dans le navigateur (encore, sauf pour Firefox 3.6, voir ci-dessous), parce que vous ne pouvez pas accéder au système de fichiers et ont donc aucune idée de la taille du fichier est avant que le formulaire ne soit soumis. Tout ce que vous pouvez faire est (côté serveur) limiter la taille des demandes autorisées et (si vous définissez cette limite plus grande qu'une taille de fichier individuelle que vous voulez autoriser) jeter tout fichier plus grand que la limite. (Pas idéal.) Comme Pekka said, vous pouvez utiliser des alternatives, mais bien sûr, ils peuvent avoir leurs propres problèmes (comme le support de Flash sur Linux, par exemple).

Alors qu'est-ce que je veux dire par "encore"? Il y a une nouvelle API DOM des gens HTML5: Le File API. Et il fait exactement ce qu'il dit, donner un accès JavaScript aux fichiers sélectionnés l'utilisateur a spécifiquement accordé l'accès à via l'élément <input type="file">. Pour l'instant, je crois que seul Firefox 3.6+ le supporte (c'est une initiative de Mozilla, adoptée par le W3C), mais on parle de Chrome le supportant au Q2 2010 (donc, à tout instant), et je ne peux pas imaginer Safari et Opera être loin derrière (s'ils ne sont pas déjà là). Il sera intéressant de voir si Microsoft peut suivre le mouvement HTML5 et commencer à récupérer leur position de premier plan dans les technologies Web. ("Huh? Microsoft technologies web de pointe?" Je vous entends demander Oui, ce sont les gens qui, il était une fois, vous a apporté le navigateur le plus rapide et le moins buggy pour Windows il y avait inventé Ajax. Il est si facile d'oublier que. ils complètement ont perdu leur chemin depuis plusieurs années   — et ont perdu tout le CRED qu'ils avaient autrefois   — mais il y avait une fois ...)

+0

+1 pour l'expansion sur la question. (Bien que je pense que par plusieurs fichiers, manisha signifie plusieurs à la fois.) –

+0

@Pekka: Si vous avez plusieurs entrées de fichiers, ils sont tous téléchargés en même temps. Il y a aussi le nouvel attribut (multiple) '' multiple '', j'ai ajouté une note à ce sujet ci-dessus. (C'est dommage qu'ils n'aient pas envisagé d'utiliser 'maxlength' pour suggérer des limites de taille de fichier aux UA, mais apparemment pas.) –

Questions connexes