flashy38 Posté 9 Octobre 2008 Posté 9 Octobre 2008 Bonjour, J'ai un script cgi qui permet d'uploader plusieurs fichiers simultanément à partir d'un formulaire HTML : <form method="post" action="/cgi-bin/upload.cgi" enctype="multipart/form-data"> <input type="file" name="file1"> <input type="file" name="file2"> <input type="submit" value="Envoyer"></form> Je sais comment contrôler la taille totale de tous les fichiers if ($ENV{'CONTENT_LENGTH'} > $ max_upload_size) { Je sais également qu'il est possible de tester la taille de chaque fichier après upload, mais ce que je cherche à faire c'est de contrôler la taille de chaque fichier avant de réellement commencer l'upload. Donc si une bonne âme pouvait me dire si c'est possible de le faire et comment.... Merci d'avance.
Kioob Posté 9 Octobre 2008 Posté 9 Octobre 2008 Hello, peu importe le langage il me semble impossible coté serveur de connaître la taille des données avant qu'elles ne soient envoyées. Le protocole HTTP ne le permet pas en tous cas, étant donné que seule la taille totale est indiquée (ton fameux Content-Length).
rikew Posté 10 Octobre 2008 Posté 10 Octobre 2008 La seule chose que tu peut obtenir c'est le chemin des fichiers. Tu peut donc controller les extentions des fichiers avant upload. Pour les photos il est peut être possible de recuperer les dimentions mais je n'ai jamais testé.
Leonick Posté 10 Octobre 2008 Posté 10 Octobre 2008 avec le champ MAX_FILE_SIZE dans le formulaire. Si le navigateur veut bien l'utiliser. Ce qui n'empêche pas, bien sûr, de vérifier quand même taille et contenu des fichiers
rikew Posté 24 Octobre 2008 Posté 24 Octobre 2008 Pour les photos il est peut être possible de recuperer les dimentions mais je n'ai jamais testé. Alors j'ai testé sur IE ... il est possible de recuperer les dimentions avec javascript mais uniquement si le script est en local ... donc ca ne fonctionne pas.
b0b0 Posté 25 Octobre 2008 Posté 25 Octobre 2008 Salut, si je ne dis pas de bêtises, on peut avec un CGI connaitre le montant de données envoyées par POST, et couper l'envoi si celui ci dépasse un certain quota. ex de code tiré d'un cgi : my($u_size) = $ENV{'CONTENT_LENGTH'};if ($u_size > $max_size) {send_error ("Upload too big. Maximum size is $max_size bytes");}sub send_error { my $fh; my $err_msg = shift; $supress_end_error = 1; $error = 1; close (STDIN); exit;} en pensant aider... b0b0
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant