Page blanche sur redimensionnement de photos

Petit nouveau ! | 4 Messages

21 sept. 2008, 21:59

Bonjour à tous,

Je réalise un site pour une galerie d'art, et je suis confronté à un probleme que je n'arrive pas à résoudre.

J'ajoute des photos grâce à un formulaire,

Si je prend une image petite mais qui fait 3mo, elle est redimensionner et uploader
Si je prend une image en 2000px par 2000px pour 500ko sa marche plus.

Voici une partie du code pour redimensionner et creer l'image :

Code : Tout sélectionner

if(!is_uploaded_file($file_tmp)){ echo "Error: Please select a file to upload!. <br>--<a href=\"$_SERVER[PHP_SELF]\">back</a>"; exit(); //exit the script and don't do anything else. } $ext = strrchr($file_name,'.'); $ext = strtolower($ext); if (($extlimit == "yes") && (!in_array($ext,$limitedext))) { echo "Wrong file extension. <br>--<a href=\"$_SERVER[PHP_SELF]\">back</a>"; exit(); } //get the file extension. $getExt = explode ('.', $file_name); $file_ext = $getExt[count($getExt)-1]; //create a random file name $rand_name = md5(time()); $rand_name= rand(0,999999999); //keep image type if($file_size){ if($file_type == "image/pjpeg" || $file_type == "image/jpeg"){ $new_img = imagecreatefromjpeg($file_tmp); } elseif($file_type == "image/x-png" || $file_type == "image/png"){ $new_img = imagecreatefrompng($file_tmp); } elseif($file_type == "image/gif"){ $new_img = imagecreatefromgif($file_tmp); } list($width, $height) = getimagesize($file_tmp); $imgratio=$width/$height; if ($imgratio>1){ $new_width_miniature = $img_miniature_width; $new_height_miniature = $img_miniature_width/$imgratio; } else{ $new_height_miniature = $img_miniature_width; $new_width_miniature = $img_miniature_width*$imgratio; } if (function_exists(imagecreatetruecolor)){ $resized_img_miniature = imagecreatetruecolor($new_width_miniature,$new_height_miniature); } else{ die("Error: Please make sure you have GD library ver 2+"); } imagecopyresized($resized_img_miniature, $new_img, 0, 0, 0, 0, $new_width_miniature, $new_height_miniature, $width, $height); //save image ImageJpeg ($resized_img_miniature,"$tableaux_mini/$rand_name.$file_ext"); ImageDestroy ($resized_img_miniature); ImageDestroy ($new_img);
Mes différents test me permette de dire que le probleme ce passe sur la fonction :
"imagecreatefromjpeg" a partir de 1800-2000px de largeur.

J'espère et je vous remercie d'avance pour l'aide que vous pourrez me donner.

Ben

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

21 sept. 2008, 22:18

Bonjour,

Tu rencontres exactement le même problème que dans ce post ici:
http://www.phpfrance.com/forums/voir_sujet-243038.php
Quand tout le reste a échoué, lisez le mode d'emploi...

Petit nouveau ! | 4 Messages

22 sept. 2008, 19:31

Bonjour,

et bien j'ai déja essayé cette méthode et le probleme est toujours present.

J'ai essayé en créant un fichier php.ini que je place dans le même dossier que mon script,
j'ai aussi essayé de l'insérer dans la page du script et sa ne change rien.

Je désespère.


:cry:

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

22 sept. 2008, 20:37

Tu es hébergé sur un serveur mutualisé?
Si oui => il y a 90% de chances que tu ne puisses pas travailler avec des images de grande résolution (car c'est très gourmand en ressources et donc problématique en mutualisé), pour en être sûr, contactes ton hébergeur.

Si tu es sur un serveur dédié, modifies le php.ini de ton serveur: fais un phpinfo() pour savoir où il se trouve. N'oublie pas de relancer Apache après avoir modifié le php.ini
Quand tout le reste a échoué, lisez le mode d'emploi...

Petit nouveau ! | 4 Messages

22 sept. 2008, 22:36

Je suis sur un serveur mutualisé, mais j'ai déja essayé de modifier le fichier php.ini. J'en est créé dans le meme dossier que mon script. Les modifs ont été prise en compte car quand je fait un phpinfo() sa m'affiche les valeurs spécifié dans le php.ini.

D'ou mon incompréhension.


(Peut etre que lors de l'exécution du script, PHP n'utilise pas le php.ini que j'ai a la racine de mon site..?)

Merci de vos réponses.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

22 sept. 2008, 23:43

(Peut etre que lors de l'exécution du script, PHP n'utilise pas le php.ini que j'ai a la racine de mon site..?)
Si lorsque tu fais un ini_get() tu retrouve bien la valeur que tu a fixée (très haute, au moins pour tester), alors c'est que ta modif a bien été prise en compte...

Teste ton code sur ta propre machine en installant par exemple wampserver: http://www.wampserver.com
Si il marche en local, c'est que le problème ne vient pas de ton script mais d'une limitation de ton hébergement... :arrow: adresse toi à ton hébergeur, tu payes pour ce service et ce sera le plus à même de te dire ce qui bloque.
Quand tout le reste a échoué, lisez le mode d'emploi...

Petit nouveau ! | 4 Messages

02 oct. 2008, 20:46

Bonjour,

Après plusieurs semaines et après avoir trouvé solution je viens vous en informer.

En faite la fonction php qui traite les images ne peut pas s'appliquer a des images trop grandes ( a ce que j'ai vu : a partir de 1600px de large ou de haut)

Voila @ + et merci a tous