|
| tirikou | Posté le 15/01/2008 @ 15:34 |
Petit astucien
928 Messages
| Bonjour, J'ai trouvé un script d'upload que voici ci-après. Je voudrai également pouvoir dans ce scipt limiter la taille en largeur et hauteur de l'image à uploader. Largeur 400px, hauteur 300px. Que dois je employer et où ? Dois je aussi rajouter un champs hidden dans le formulaire ? Voici le script : <?php $poids_max = 512000; // Poids max de l'image en octets (1Ko = 1024 octets) $repertoire = 'uploads/'; // Repertoire d'upload if (isset($_FILES['fichier'])) { // On vérifit le type du fichier if ($_FILES['fichier']['type'] != 'image/png' && $_FILES['fichier']['type'] != 'image/jpeg' && $_FILES['fichier']['type'] != 'image/jpg' && $_FILES['fichier']['type'] != 'image/gif') { $erreur = 'Le fichier doit être au format *.jpeg, *.gif ou *.png .'; } // On vérifit le poids de l'image elseif ($_FILES['fichier']['size'] > $poids_max) { $erreur = 'L\\'image doit être inférieur à ' . $poids_max/1024 . 'Ko.'; } // On vérifit si le répertoire d'upload existe elseif (!file_exists($repertoire)) { $erreur = 'Erreur, le dossier d\\'upload n\\'existe pas.'; } // Si il y a une erreur on l'affiche sinon on peut définir l'extentions du fichier et son nom if(isset($erreur)) { echo '' . $erreur . '<br><a href="javascript:history.back(1)">Retour</a>'; } else { // On définit l'extention du fichier puis on le nomme par le timestamp actuel if ($_FILES['fichier']['type'] == 'image/jpeg') { $extention = '.jpg'; } elseif ($_FILES['fichier']['type'] == 'image/jpg') { $extention = '.jpg'; } $nom_fichier = time().$extention; else {$erreur = 'Erreur, votre image n\\'a pas une extension jpg ou jpeg.';} // Si il y a une erreur on l'affiche sinon on peut uploader if(isset($erreur)) { echo '' . $erreur . '<br><a href="javascript:history.back(1)">Retour</a>'; } else { // On upload le fichier sur le serveur. if (move_uploaded_file($_FILES['fichier']['tmp_name'], $repertoire.$nom_fichier)) { $url = 'www.monsite.com/'.$repertoire.''.$nom_fichier.''; echo 'Votre image à été uploadée sur le serveur avec succes!<br>Voici le lien: <input type="text" value="' . $url . '" size="60">'; } else { echo 'L\\'image n\\'a pas pu être uploadée sur le serveur.'; } } } else { ?> <form action="<? echo $PHP_SELF; ?>" method="post" enctype="multipart/form-data"> <input type="hidden" name="MAX_FILE_SIZE" value="<?php echo $poids_max; ?>"> <input type="file" name="fichier"> <input type="submit" value="Envoyer"> </form> <?php } ?>
Merci de votre aide.
|
| |
| |
| Publicité |
|
|
| Malcolm | Posté le 15/01/2008 à 18:55 |
Astucien
7264 Messages
| Hello,
hélas non tu n'auras aucun contrôle là dessus (quoique, peut-être en javascript, et encore, c'est pas forcément sûr ...). Par contre, tu peux recréer via la librairie GD l'image, une fois uploadée, en dimensions maximales souhaitées, tu peux également accéder aux dimensions une fois l'image uploadée, mais je ne crois pas que tu puisses faire de préselection via le coté HTML seulement.
Regarde par là : http://mtodorovic.developpez.com/php/gd/?page=page_3#LIII-3.2.3 |
| |
|
| tirikou | Posté le 15/01/2008 à 19:15 |
Petit astucien
928 Messages
| Merci, Au fait t'en dis quoi de ce script ? Ca à l'air de fonctionner ? |
| |
|
| tirikou | Posté le 15/01/2008 à 23:30 |
Petit astucien
928 Messages
| Bon j'ai trouvé qu'il "serait" possible de vérifier la taille d'un fichier uploadé avec ceci : $infos = getimagesize($_FILES['fichier']['tmp_name']); if(($infos[0] <= $largeur_maximal) && ($infos[1] <= $hauteur_maximal)) // que les dimmensions sont respectées,
Mais je comprends pas comment cela fonctionne. Pouvez vous m'expliquer ?  Et surtout comment puis incorporer cela dans mon script ? |
| |
|
| tirikou | Posté le 17/01/2008 à 22:10 |
Petit astucien
928 Messages
| |
| |
|
| tirikou | Posté le 18/01/2008 à 21:38 |
Petit astucien
928 Messages
| Bonjour, Voilà je crois avoir trouvé en tout cas j'ai trouvé quelque chose qu'il me semble comprendre et je vais pouvoir travailler.  En fait j'ai pas trouvé tout seul c'est un zero du sdz qui m'a filé le tuyau.  Mais c'est exactement ce que je cherchais alors combiné avec ce que j'ai déjà je vais pouvoir m'en sortir. Pour ceux que cela intéresse ou pour éviter de secher si une même question revenait sur pca je joints les deux liens qui complètent mon script d'origine. upload 1 upload 2 Voili voilou reste plus qu'à bosser.  Euh si je sèche je reviens. Promis !  Modifié par tirikou le 18/01/2008 21:39 |
| |
|
| Malcolm | Posté le 18/01/2008 à 22:39 |
Astucien
7264 Messages
| Re, ces 2 liens ont le mérite d'être explicatifs ... Seulement j'y vois un manque de rigueur ... Si je crrée un fichier texte (extension .txt) et que je le renomme en .mp3, ces 2 liens vont le prendre pour un MP3, juste en se basant sur l'extension ... |
| |
|
| tirikou | Posté le 19/01/2008 à 15:05 |
Petit astucien
928 Messages
| T'es devin ou quoi ?  En fait j'ai aussi vu "de ci de la" qu'une image au format gif par exemple renommée en jpg pouvait être refusé car gardé en mémoire (?) au format gif ou l'inverse. Je comptais tester cela mais puisque tu soulèves le problème, que penses tu que je doives faire pour remédier à cela ? tant qu'on y est autant que je fasse tout d'un coup . Ca m'évitera des nuits blanches ... |
| |
|
| Malcolm | Posté le 19/01/2008 à 16:11 |
Astucien
7264 Messages
| au lieu de se fier à un test sur l'extension, il faudrait regarder le type mime du fichier. $_FILES['nom']['type']donne cette info (où nom est le name du formulaire) |
| |
|
|
| Haut de la page |