J'ai fais le code ci-dessous (je suis débutant effectivement haha), il upload, renomme et resize en 5 thumbnails mais ne fonctionne pas avec les images de plus de 200 ou 300k..... Est-ce que quelqu'un voit ou est le problème ?
Ma valeur Max_file est pourtant beaucoup plus haute .. Le résultat d'un upload de fichier de 1M est soit une page blanche, soit que l'upload n'abouti pas...
Merci !!!!!
<?php
//Ouverture de la session
session_start() ;
// Connexion a la base
$db = mysql_connect('localhost', 'user', 'passe') or die('Erreur de connexion '.mysql_error());
// Selection de la base
mysql_select_db('MABD',$db) or die('Erreur de selection '.mysql_error());
$sql = "select * from MATABLE where user='".$_SESSION["user"]."'";
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
$data = mysql_fetch_assoc($req);
//Variables
$dossier = '../../img/p/';
$home = '-home' ;
$medium = '-medium' ;
$large = '-large' ;
$small = '-small' ;
$thickbox = '-thickbox' ;
$watermark = '-watermark' ;
$point = '.jpg' ;
$tiret = '-';
$product = $_POST["id_product"];
$image = $_POST["id_image"];
$fichier = basename($_FILES['image']['name']);
$taille_maxi = 3000000;
$taille = filesize($_FILES['image']['tmp_name']);
$extensions = array('.png', '.gif', '.jpg', '.jpeg');
$extension = strrchr($_FILES['image']['name'], '.');
//Début des vérifications de sécurité...
if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau
{
$erreur = 'Vous devez uploader un fichier de type png, gif, jpg, jpeg, txt ou doc...';
}
if($taille>$taille_maxi)
{
$erreur = 'Le fichier est trop gros...';
}
if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload
{
//Je formate le nom du fichier ...
$fichier = strtr($fichier,
'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
$fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
if(move_uploaded_file($_FILES['image']['tmp_name'], $dossier . $product.$tiret.$image.$point))
{
//RESIZE LES IMAGES
// La hauteur des nouvelles images thumbnail
$size = 129; //home
$size1 = 45; //small
$size2 = 80; //medium
$size3 = 300; //large
$size4 = 768; //watermark
$size5 = 600; //thickbox
$filedir = $dossier; // Le dossier de l'image original (redirige sur le dossier en haut)
$thumbdir = $dossier; // L'endroit ou je veux la nouvelle image (rien car dans le meme dossier)
$maxfile = $taille_maxi ;
$mode = '0777';
$userfile_name =$product.$tiret.$image.$point;
$userfile_tmp = $_FILES['image']['tmp_name'];
$userfile_size = $_FILES['image']['size'];
$userfile_type = $_FILES['image']['type'];
if (isset($_FILES['image']['name']))
{
//Renomme l'image téléchargé en $prod_img
$prod_img = $filedir.$userfile_name;
//Renomme l'image pour le prochain thumbnail
$prod_img_thumb = $thumbdir.$product.$tiret.$image.$home.$point;
$prod_img_thumb1 = $thumbdir.$product.$tiret.$image.$small.$point;
$prod_img_thumb2 = $thumbdir.$product.$tiret.$image.$medium.$point;
$prod_img_thumb3 = $thumbdir.$product.$tiret.$image.$large.$point;
$prod_img_thumb4 = $thumbdir.$product.$tiret.$image.$watermark.$point;
$prod_img_thumb5 = $thumbdir.$product.$tiret.$image.$thickbox.$point;
// rien a changer.. move file original..
move_uploaded_file($userfile_tmp, $prod_img);
chmod ($prod_img, octdec($mode));
// récupère les dimensions de l'image originale
$sizes = getimagesize($prod_img);
//Garder le ratio original
$aspect_ratio = $sizes[1]/$sizes[0];
if ($sizes[1] <= $size)
{
$new_width = $sizes[0];
$new_height = $sizes[1];
}else{
$new_height = $size;
$new_width = abs($new_height/$aspect_ratio);
$new_height1 = $size1;
$new_width1 = abs($new_height/$aspect_ratio);
$new_height2 = $size2;
$new_width2 = abs($new_height/$aspect_ratio);
$new_height3 = $size3;
$new_width3 = abs($new_height/$aspect_ratio);
$new_height4 = $size4;
$new_width4 = abs($new_height/$aspect_ratio);
$new_height5 = $size5;
$new_width5 = abs($new_height/$aspect_ratio);
}
$destimg=ImageCreateTrueColor($new_width,$new_height) or die('L\'image n\'a pas pu être replacée. Référence : 146');
$srcimg=ImageCreateFromJPEG($prod_img) or die('L\'image n\'a pas pu être trouvée. Référence : 146');
ImageCopyResized($destimg,$srcimg,0,0,0,0,$new_width,$new_height,ImageSX($srcimg),ImageSY($srcimg)) or die('L\'image n\'a pas pu être redimensionnée. Référence : 146');
ImageJPEG($destimg,$prod_img_thumb,90) or die('L\'image n\'a pas pu être sauvegardée. Référence : 146');
imagedestroy($destimg);
$destimg1=ImageCreateTrueColor($new_width1,$new_height1) or die('L\'image n\'a pas pu être replacée. Référence : 146');
$srcimg1=ImageCreateFromJPEG($prod_img) or die('L\'image n\'a pas pu être trouvée. Référence : 146');
ImageCopyResized($destimg1,$srcimg1,0,0,0,0,$new_width1,$new_height1,ImageSX($srcimg1),ImageSY($srcimg1)) or die('L\'image n\'a pas pu être redimensionnée. Référence : 146');
ImageJPEG($destimg1,$prod_img_thumb1,90) or die('L\'image n\'a pas pu être sauvegardée. Référence : 146');
imagedestroy($destimg1);
$destimg2=ImageCreateTrueColor($new_width2,$new_height2) or die('L\'image n\'a pas pu être replacée. Référence : 146');
$srcimg2=ImageCreateFromJPEG($prod_img) or die('L\'image n\'a pas pu être trouvée. Référence : 146');
ImageCopyResized($destimg2,$srcimg2,0,0,0,0,$new_width2,$new_height2,ImageSX($srcimg2),ImageSY($srcimg2)) or die('L\'image n\'a pas pu être redimensionnée. Référence : 146');
ImageJPEG($destimg2,$prod_img_thumb2,90) or die('L\'image n\'a pas pu être sauvegardée. Référence : 146');
imagedestroy($destimg2);
$destimg3=ImageCreateTrueColor($new_width3,$new_height3) or die('L\'image n\'a pas pu être replacée. Référence : 146');
$srcimg3=ImageCreateFromJPEG($prod_img) or die('L\'image n\'a pas pu être trouvée. Référence : 146');
ImageCopyResized($destimg3,$srcimg3,0,0,0,0,$new_width3,$new_height3,ImageSX($srcimg3),ImageSY($srcimg3)) or die('L\'image n\'a pas pu être redimensionnée. Référence : 146');
ImageJPEG($destimg3,$prod_img_thumb3,90) or die('L\'image n\'a pas pu être sauvegardée. Référence : 146');
imagedestroy($destimg3);
$destimg4=ImageCreateTrueColor($new_width4,$new_height4) or die('L\'image n\'a pas pu être replacée. Référence : 146');
$srcimg4=ImageCreateFromJPEG($prod_img) or die('L\'image n\'a pas pu être trouvée. Référence : 146');
ImageCopyResized($destimg4,$srcimg4,0,0,0,0,$new_width4,$new_height4,ImageSX($srcimg4),ImageSY($srcimg4)) or die('L\'image n\'a pas pu être redimensionnée. Référence : 146');
ImageJPEG($destimg4,$prod_img_thumb4,90) or die('L\'image n\'a pas pu être sauvegardée. Référence : 146');
imagedestroy($destimg4);
$destimg5=ImageCreateTrueColor($new_width5,$new_height5) or die('L\'image n\'a pas pu être replacée. Référence : 146');
$srcimg5=ImageCreateFromJPEG($prod_img) or die('L\'image n\'a pas pu être trouvée. Référence : 146');
ImageCopyResized($destimg5,$srcimg5,0,0,0,0,$new_width5,$new_height5,ImageSX($srcimg5),ImageSY($srcimg5)) or die('L\'image n\'a pas pu être redimensionnée. Référence : 146');
ImageJPEG($destimg5,$prod_img_thumb5,90) or die('L\'image n\'a pas pu être sauvegardée. Référence : 146');
imagedestroy($destimg5);
}
echo 'Le remplacement de l\'image est terminée !';
echo " <br> <table align=center><a href=\"../fiche.php\">Retourner à votre fiche en cliquant ici </a> <br> " ;
}
else //Sinon (la fonction renvoie FALSE).
{
echo 'Le remplacement n\'a pas fonctionné. Contactez-nous si le problème persiste. Référence : 192';
}
}
else
{
echo $erreur;
}
?>