upload puis redimention d'une image

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : upload puis redimention d'une image

Re: upload puis redimention d'une image

par AB » 04 juin 2011, 21:12

La classe est assez simple à utiliser, et toutes les fonctions dont tu as besoin (enfin celles que tu as mentionnées) sont inclues avec en plus la gestion des erreurs. Mais bon si ton code te suffit... je voulais juste dire que sans la gestion des erreurs, si les images sont trop grosses elles ne pourront pas être uploadées ou redimensionnées et que le serveur te renverra une page blanche.

Pour ta deuxième question, le plus simple est de faire afficher l'image une fois installée dans ton répertoire puis de mettre un bouton "confirmer" (qui ne fera rien) et un bouton "supprimer" qui effacera l'image du serveur. De toutes façons ce qui est long est de charger l'image sur le serveur, alors qu'elle soit dans un répertoire temporaire ou dans ton répertoire de destination... Et puis les fichiers temporaires sont normalement effacés à la fin du script en cours.

Re: upload puis redimention d'une image

par morrissfr » 03 juin 2011, 20:31

Oui 'AB'... je vais lire plus en profondeur, mais ça semble pas très simple...
Mais j'ai une autre question, j'abuse... Lorsqu'on uploade l'image au submit du formulaire je crois qu'elle part au serveur dans un répertoire temporaire $_FILES['mon_image']['tmp_name']? Si oui, peut-on la visionner avant de l’installer définitivement dans son répertoire et ce afin de vérifier, par exemple, que c'est la bonne image. Merci
Bonne nuit... les petits....

Re: upload puis redimention d'une image

par AB » 02 juin 2011, 21:34

Pub !

Si tu veux pouvoir gérer le dépassement de upload_max_size, de même que la mémoire limite pour éviter des pages blanches en cas de redimensionnement ou chargement d'images trop grosses c'est ici

Moi aussi j'ai faim :)

Re: upload puis redimention d'une image

par morrissfr » 02 juin 2011, 20:02

Si tu habites pas loin de chez moi je t'invite au resto!!!!! Ça fonctionne! J'avais pas compris l'instruction... je croyais que c'était $img_mini qui était l'image à enregistrer ce que, d'ailleurs, je ne comprenais pas vu qu'il n'y avait pas de nom d'image. Tout est clair maintenant! merci encore!
Cordialement

Re: upload puis redimention d'une image

par Ryle » 02 juin 2011, 18:33

ben... hmm... non :)
bool imagejpeg ( resource $image [, string $filename [, int $quality ]] )
- Le premier paramètre doit être une ressource d'image, retournée par une des fonctions de création d'images (retournée par imagecreatetruecolor())
- Le second paramètre est le nom du fichier que tu veux créer (avec le chemin d'enregistrement du fichier)

Tu devrais donc avoir quelque chose du genre :
$success = imagejpeg($img_mini, $dest_dossier . $dest_fichier); 
si tu veux remplacer l'image d'origine, ou avec un autre nom ou dans un autre dossier si tu veux créer une miniature et conserver l'image d'origine :)

Re: upload puis redimention d'une image

par morrissfr » 02 juin 2011, 17:24

Bigre.... pourtant j'ai écrit : imagejpeg($img_mini,$dest_dossier); il y a bien $img_mini qui est le nom de l'image redimensionnée, non?

Re: upload puis redimention d'une image

par Ryle » 02 juin 2011, 17:09

Le chemin semble bon, mais tu ne passes que celui-ci, et il te manque le nom de la nouvelle image :)

upload puis redimention d'une image

par morrissfr » 02 juin 2011, 16:11

Bonjour à tous,
J'ai aucune difficulté pour "uploader" une image sur mon site avec le code:
move_uploaded_file($_FILES['mon_image']['tmp_name'], $dest_dossier . $dest_fichier
$dest_dossier se présente comme ceci : '../../choco/'.$categorie."/"; où $categorie contient le nom du sous-dossier où est envoyé l'image.
L'image envoyée je veux ensuite la redimentionner pour ce faire je code:

Code : Tout sélectionner

$y= 400; // hauteur max de l'image $pourcent= $y/$size[1]; // calcul du % entre hauteur de l'image chargée et 400 $x= round($size[0]*$pourcent); // on applique ce % à la largeur $img_big = imagecreatefromjpeg($dest_dossier . $dest_fichier); # On ouvre l'image d'origine $img_new = imagecreate($x, $y); $img_mini = imagecreatetruecolor($x, $y); imagecopyresampled($img_mini,$img_big,0,0,0,0,$x,$y,$size[0],$size[1]); $success = imagejpeg($img_mini,$dest_dossier); if ($success) { $result = "l'image est crée"; } else { $result = 'Problème de création'; } echo $result ;
Apparemment j’utilise bien de même dossier de destination que celui de la récupération de l'image en question soit : $dest_dossier et pourtant j'obtiens ce message :
Warning: imagejpeg() [function.imagejpeg]: Unable to open '../../choco/montres/' for writing:
Si je peux uploader l'image c'est qu'il y a les droits (chmod) sur ce dossier donc pourquoi je peux pas y enregistrer la mini image? Une erreur de chemin (path) ?
merci si quelqu'un trouve!!!!
Cordialement