bambino Posté 1 Février 2005 Partager Posté 1 Février 2005 hello, Y aurait-t-il une solution pour bloquer l'upload d'image, limité par exemple à 500Ko, avant que celle-ci ne soit envoyée sur le serveur? ciao a tutti! Lien vers le commentaire Partager sur d’autres sites More sharing options...
bambino Posté 1 Février 2005 Auteur Partager Posté 1 Février 2005 ok, mais le fichier est-il bloquer avant l'upload ou après celui-ci? C'est surtout pour une econnomie de bande passante... merci Lien vers le commentaire Partager sur d’autres sites More sharing options...
Dan Posté 1 Février 2005 Partager Posté 1 Février 2005 Je corrige le tir, mon post précédent était faux Tu dois pouvoir arriver à déterminer la taille du fichier en JavaScript, et mettre ce code dans une fonction appelée lors du submit du formulaire. Je dois pouvoir mettre la main sur un bout de code Dan Lien vers le commentaire Partager sur d’autres sites More sharing options...
bambino Posté 1 Février 2005 Auteur Partager Posté 1 Février 2005 Je corrige le tir, mon post précédent était faux Tu dois pouvoir arriver à déterminer la taille du fichier en JavaScript, et mettre ce code dans une fonction appelée lors du submit du formulaire. Je dois pouvoir mettre la main sur un bout de code Dan <{POST_SNAPBACK}> ok, mais le javascript est coté client donc il est possible de passer outre.. non? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Dan Posté 1 Février 2005 Partager Posté 1 Février 2005 Décidément... je répond à côté. JavaScript ne peut pas tester la taille d'un fichier pour des raisons de sécurité. Il peut tester la taille de la page courante et de ses images, donc tu devrais pouvoir afficher l'image et en faire calculer la taille par JavaScript. function calculate(){ if (!document.fileSize) { alert('Votre navigateur ne supporte pas filesize.'); return; } var size = (document.fileSize)*1; var y = document.images; var imglength = 0; for (i=0;i<y.length;i++) { imglength += (y[i].fileSize)*1; } var total = size + imglength; var writestring = 'Taille fichier HTML: ' + size; writestring += '\nTaille des images: ' + imglength; writestring += '\nTaille totale: ' + total; if (total > 512000) writestring += "\nFichier trop volumineux!"; alert(writestring);} En ne testant que les images, tu peux déterminer la taille de celles-ci . Lien vers le commentaire Partager sur d’autres sites More sharing options...
Dan Posté 1 Février 2005 Partager Posté 1 Février 2005 Le problème est que ton code ne peut s'exécuter que du côté client, parce que toute exécution du côté serveur suppose le téléchargement a priori du fichier. Pas d'autre solution à mon sens. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sarc Posté 1 Février 2005 Partager Posté 1 Février 2005 <input type='hidden' name='MAX_FILE_SIZE' value='20000'> Il me semble que mettre ça dans le formulaire, juste avant le balise input type="file" permet de bloquer le transfert si le fichier demandé est trop gros... A vérifier mais il semble que ça marche... à peu pres Lien vers le commentaire Partager sur d’autres sites More sharing options...
Dan Posté 1 Février 2005 Partager Posté 1 Février 2005 Je me souviens pour avoir essayé ce code qu'il ne marchait pas sur tous les navigateurs... mais ma mémoire me joue peut-être des tours. Dan Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sarc Posté 1 Février 2005 Partager Posté 1 Février 2005 C'est déjà un premier pas non Dan ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Dan Posté 1 Février 2005 Partager Posté 1 Février 2005 C'est déjà un premier pas non Dan ? Oui, tout à fait. Mais au moment où j'avais testé cette balise on en était aux versions précédentes des navigateurs (je suis un "vieux ) Peut-être que cela marche mieux sur la dernière génération Merci pour ce rafraîchissement de mémoire Lien vers le commentaire Partager sur d’autres sites More sharing options...
Vincent Posté 1 Février 2005 Partager Posté 1 Février 2005 personnellement, j'utilise un script php récupéré je ne sais plus trop où pour faire digerer a ma base de données des milliers de requetes SQL en provenance le plus souvent de feuilles saisies dans excel (vous savez en genealogie, on en stocke des infos )... et il fonctionne a merveille sous firefox et internet explorer (c'est deja pas mal non ... par contre, il est bloqué après l'upload puisqu'on le teste en php... : <?phpfunction date_mysql($date_saisie){ //division de la date par rapport au / ou - list ($jour , $mois , $an) = split("[-./]",$date_saisie); //inverse la date if (strlen($mois)==1) $mois = "0".$mois; if (strlen($jour)==1) $jour = "0".$jour; return($an."-".$mois."-".$jour);} $bouton = @$_POST['bouton'];if(!empty($bouton)){ $fichier = $_FILES['fichier']['name']; $size = $_FILES['fichier']['size']; $tmp = $_FILES['fichier']['tmp_name']; $type = $_FILES['fichier']['type']; $error = $_FILES['fichier']['error']; $max = 1000000; if(isset($fichier)) { if($size <= $max) { //information sur le fichier echo 'Nom d\'origine =>'.$fichier.'<br />'; echo 'Taille =>'.$size.'<br />'; echo 'Nom sur le serveur =>'.$tmp.'<br />'; echo 'Type de fichier =>'.$type.'<br />'; echo 'Code erreur =>'.$error.'<br />'; // traitement a faire [...] } else { echo 'Le fichier est trop volumineux'; } } else { echo 'aucun fichier envoyé'; }}?><form enctype="multipart/form-data" action="moulinette.php" method="post"><input name="fichier" type="file"><input type="submit" value="send" name="bouton"></form> Lien vers le commentaire Partager sur d’autres sites More sharing options...
cyrilg38 Posté 1 Février 2005 Partager Posté 1 Février 2005 c'est une bonne question posée là. Je cherche moi-même à écrire un script d'upload de fichiers en PHP mais je suis débutant. Je vais suivre ce sujet avec attention Lien vers le commentaire Partager sur d’autres sites More sharing options...
Anonymus Posté 3 Février 2005 Partager Posté 3 Février 2005 Pour le code que tu proposes : if(isset($fichier)) { Tu devrais tester la valeur de $_POST['fichier'] avant d'allouer les autres variables. C'est inutile de leur allouer des valeurs que tu 'sais' fausses par la suite D'ailleurs, tu devrais tester la présence du fichier, puis son poids, et virer le fichier si celui ci est trop gros, avant de commencer quoi que ce soit. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Vincent Posté 3 Février 2005 Partager Posté 3 Février 2005 le fichier est viré automatiquement si je ne demande pas par la suite de le recopier quelque part (ce qui est le cas si le fichier est trop volumineux): The file will be deleted from the temporary directory at the end of the request if it has not been moved away or renamed. donc a la fin de ma transaction web, *pouf* plus de fichier ! pour garder un fichier sur le serveur il faut utiliser la fonction : move_uploaded_file par contre pour l'inutilité d'allouer les variables, je suis d'accord Lien vers le commentaire Partager sur d’autres sites More sharing options...
abl Posté 3 Février 2005 Partager Posté 3 Février 2005 salut voila un tuto de script d'upload http://www.siteduzero.com/vostutos/?s=viewtuto&tutoid=51 ++ -abL^ Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant