À l'aide de jQuery, la Restriction de la Taille du Fichier Avant de le télécharger
Sur PHP, ils ont une façon de limiter la taille du fichier APRÈS le téléchargement, mais pas AVANT de le télécharger. J'utilise le Malsup jQuery Forme de Plugin pour ma forme de poster, et il prend en charge le fichier image de l'affichage.
Je me demandais si peut-être il y a une restriction où je peux mettre combien d'octets peut passer par cette AJAX flux vers le serveur? Qui pourrait me permettre de vérifier que la taille du fichier et renvoie une erreur si le fichier est trop gros.
En faisant cela, sur le côté client, il bloque les débutants qui prennent un 10MB photo prise à partir de leur Pentax et essayer de le télécharger.
Vous devez vous connecter pour publier un commentaire.
C'est une copie de mes réponses à une question très semblable: Comment vérifier l'entrée de fichier de taille avec jQuery?
Vous avez réellement n'avez pas accès au système de fichiers (par exemple la lecture et l'écriture de fichiers locaux). Toutefois, en raison de l'HTML5 Fichier de spécification de l'API, il y a quelques propriétés du fichier que vous avez accès à, et la taille de fichier est l'un d'entre eux.
Pour ce HTML:
essayez ce qui suit:
Car c'est une partie de la spécification HTML5, cela ne fonctionne qu'avec les navigateurs modernes (v10 nécessaire pour IE) et j'ai ajouté ici plus de détails et des liens sur d'autres informations sur le fichier que vous devez savoir: http://felipe.sabino.me/javascript/2012/01/30/javascipt-checking-the-file-size/
Vieux navigateurs prennent en charge
Être conscient que les anciens navigateurs sera de retour d'une
null
valeur pour la précédentethis.files
appel, l'accès àthis.files[0]
va lever une exception et vous devriez vérifiez le Fichier de prise en charge des API avant de l'utiliserJe ne pense pas que c'est possible, sauf si vous utilisez un flash, activex ou java uploader.
Pour des raisons de sécurité ajax /javascript n'est pas autorisé à accéder au fichier de flux ou de propriétés du fichier avant ou pendant le téléchargement.
J'ai essayé de cette façon et j'obtiens les résultats dans IE*, et Mozilla 3.6.16, na pas de vérifier dans les anciennes versions.
Ajouter de la bibliothèque Jquery aussi.
J'ai rencontré le même problème. Vous devez utiliser un contrôle ActiveX ou un Flash (ou Java). La bonne chose est qu'il n'a pas à être envahissante. J'ai un ActiveX simple méthode qui sera de retour de la taille de l'à-être-fichier téléchargé.
Si vous allez avec Flash, vous pouvez même faire un peu de fantaisie js/css à cusomize le téléchargement de l'expérience, seulement à l'aide de Flash (comme 1x1 "film") à l'accès, c'est du téléchargement du fichier de fonctionnalités.
J'ai trouvé que Apache2 (vous pouvez aussi vérifier Apache 1.5) a un moyen de limiter ce avant le téléchargement en laissant tomber ce dans votre .htaccess:
LimitRequestBody 2097152
Cette limite à 2 mégaoctets (2 * 1024 * 1024) sur un téléchargement de fichier (si j'ai fait mon octet de mathématiques correctement).
Remarque lorsque vous effectuez cette opération, le journal des erreurs d'Apache va générer cette entrée lorsque vous dépassez cette limite sur un formulaire de requête post ou get:
Et il affiche également ce message dans le navigateur web:
Donc, si vous êtes en train de faire de l'AJAX formulaire de postes avec quelque chose comme le Malsup jQuery Forme de Plugin, vous pouvez piège pour le H1 ce type de réponse et de montrer un résultat d'erreur.
Par la voie, le numéro de l'erreur retournée est 413. Donc, vous pouvez utiliser une directive dans votre .fichier htaccess comme...
...et de donner une plus gracieux résultat d'erreur en retour.
Comme d'autres l'ont dit, il n'est pas possible avec JavaScript en raison du modèle de sécurité de telle.
Si vous le pouvez, je vous recommande l'un des ci-dessous des solutions..à la fois, dont l'utilisation d'un composant flash pour le côté client validations; cependant, sont reliés à l'aide de Javascript/jQuery. Les deux fonctionnent très bien et peut être utilisé avec n'importe quel côté serveur tech.
http://www.uploadify.com/
http://swfupload.org/
Il n'est pas possible de vérifier la taille de l'image, de la largeur ou de la hauteur sur le côté client. Vous avez besoin d'avoir ce fichier téléchargé sur le serveur et utiliser PHP pour vérifier toutes ces informations.
PHP dispose de fonctions spéciales comme:
getimagesize()
Essayer de code ci-dessous: