11
votes

Comment puis-je obtenir la taille de téléchargement d'un fichier à l'aide de JavaScript simple?

J'ai télécharger la fonctionnalité de fichier sur l'une des pages. Je vérifie l'extension du fichier à l'aide de JavaScript. Maintenant, je veux limiter l'utilisateur du fichier de téléchargement supérieur à 1 Mo. Y a-t-il un moyen de vérifier la taille du téléchargement de fichier à l'aide de JavaScript.

Mon code ressemble actuellement à ceci: xxx


3 commentaires

Voir Stackoverflow.com/questions/547292/Cow -à-récupérer-la taille-de-f Île


Pourquoi accepter une mauvaise réponse? Vérifiez la deuxième réponse = c'est possible!


@Pankajkhurana - Lorsque vous avez accepté une réponse il y a cinq ans, la réponse que vous avez choisie était correcte. Aujourd'hui, cela n'est plus le cas, pourriez-vous revenir à cette question et changer la réponse acceptée à un niveau moderne s'il vous plaît?


9 Réponses :


2
votes

Autre que pour l'acquisition du nom de fichier, il n'y a aucun moyen de trouver d'autres détails sur le fichier en JavaScript, y compris sa taille.

à la place, vous devez configurer le script côté serveur pour bloquer un téléchargement surdimensionné.


2 commentaires

De plus, même si vous pouviez quand même vouloir une vérification côté serveur, car il n'y a rien pour arrêter les utilisateurs malveillants écrivant leur propre forme qui publient au même endroit.


@Dominicrodger Je suis d'accord que vous devriez vérifier la taille du fichier sur le côté serveur pour la sécurité. Mais pour la commodité (ce que je pense, c'est ce que l'OP allait pour), il est préférable de laisser l'utilisateur sache à l'avance que leur fichier de 1 gib ne sera pas accepté au lieu de leur dire après avoir dû attendre le fichier à télécharger.



0
votes

Cela pourrait être possible en utilisant beaucoup de code spécifique au navigateur. Jetez un coup d'œil à la source de TIDDLYWIKI , qui parvient à vous sauver sur le disque dur de l'utilisateur en accrochant à Windows. Hôte de script (IE), XPCOM (Mozilla), etc.


0 commentaires

0
votes

Je ne pense pas qu'il y ait un moyen de le faire avec un js plain d'une page Web.
Avec une extension de navigateur peut-être, mais à partir d'une page JavaScript ne peut pas accéder au système de fichiers pour des raisons de sécurité.

Flash et Java devraient avoir des restrictions similaires, mais elles sont peut-être un peu moins strictes.


0 commentaires

0
votes

impossible. serait une préoccupation majeure de sécurité pour permettre aux scripts latéraux du client d'exécuter qui peut lire les informations de fichier et l'utilisateur final.


1 commentaires

Ceci est pris en charge dans Firefox 3.6. Voir HTML 5's's's's Href = "http://www.w3.org/tr/fileapi/" rel = "Nofollow Noreferrer"> w3.org/tr/fileapi >. J'ai utilisé ce module, et cela fonctionne bien pour le téléchargement via Ajax sans avoir besoin d'objets Flash ni de tromperie Iframe.



28
votes

Voir http://www.w3.org/tr/fileapi/ . Il est soutenu par Firefox 3.6; Je ne connais pas d'autres navigateurs.

dans le tinchange événement d'un simplement: xxx

Vous pouvez également renvoyer le contenu du fichier sous forme de chaîne, etc. Mais encore une fois, cela ne peut fonctionner que avec Firefox 3.6.


0 commentaires

0
votes

voir ici:

http: // www.kavoir.com/2009/01/check-for-file-size-with-javascript-before-uploading.html

Quant à toutes les personnes qui disent que cela doit être fait du côté serveur, ils sont absolument surprenant.

Dans mon cas, bien que la taille maximale que je puisse sauf 128 Mo, si un utilisateur tente de télécharger quelque chose de 130 Mo, il ne faut pas avoir à attendre le temps de téléchargement de 5 minutes pour savoir qu'il est trop gros pour que je puisse faire un Vérification supplémentaire avant de soumettre la page pour la convivialité.


0 commentaires

2
votes

La plupart de ces réponses sont très obsolètes. Il est actuellement possible de déterminer le côté client de la taille du fichier dans n'importe quel navigateur qui prend en charge l'API de fichier. Cela inclut, à peu près, tous les navigateurs autres que IE9 et plus âgés.


0 commentaires

5
votes

Maintenant, il est possible d'obtenir la taille du fichier à l'aide de PURE JavaScript. Presque tous les supports de navigateur FileReader, que vous pouvez utiliser pour lire la taille du fichier et vous pouvez afficher l'image sans télécharger le fichier sur le serveur. lien

code: xxx

vous Peut obtenir la taille du fichier directement à partir de l'objet de fichier en utilisant le code suivant. xxx


0 commentaires

0
votes

J'ai eu le même problème, voici un simple extrait JavaScript fonctionné pour moi. Ajout pour les futurs googlers.

html xxx

js xxx


0 commentaires