[PHP] Problème génération miniature
ten62
Messages postés
158
Date d'inscription
Statut
Membre
Dernière intervention
-
ten62 Messages postés 158 Date d'inscription Statut Membre Dernière intervention -
ten62 Messages postés 158 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Voila, j'ai fait un script d'upload d'images multiples, avec en même temps génération de miniatures.
Le script fonctionne très bien
Problème : La génération des miniatures ne se fait plus avec de très grandes images (2000*1000px ...)
Avez vous une idée ?
CODE :
***********************************************************
***********************************************************
Voila, j'ai fait un script d'upload d'images multiples, avec en même temps génération de miniatures.
Le script fonctionne très bien
Problème : La génération des miniatures ne se fait plus avec de très grandes images (2000*1000px ...)
Avez vous une idée ?
CODE :
***********************************************************
for($i=0;$i<sizeof($_FILES["srcfichier"]["name"]);$i++) { // Si l'input est vide, on passe if(!$_FILES["srcfichier"]["name"][$i]) continue; $dossier = '../_files/'; $fichier = basename($_FILES["srcfichier"]["name"][$i]); $taille_maxi = 10000000; $taille = filesize($_FILES["srcfichier"]["tmp_name"][$i]); $extensions = array('.png', '.gif', '.jpg', '.jpeg', '.JPG' ); $extension = strrchr($_FILES["srcfichier"]["name"][$i], '.'); // SECURITE // type de fichier if(!in_array($extension, $extensions)) { $erreur = '<p align="center" class="validation">Vous devez uploader un fichier de type png, gif, jpg, jpeg...</p>'; } // TAILLE DU FICHIER if($taille > $taille_maxi) { $erreur = '<p align="center" class="validation">Le fichier est trop lourd ...</p>'; } // SI PAS d'ERREUR if(!empty($erreur)) { echo $erreur; } else { // *********** AJOUT DES POSTS DANS LA BBD **************** // RECUPERATION DES POSTS $desc_courte = $_POST['elm2']; $desc_long = $_POST['elm1']; $name = $_POST['name']; // DATE $date = "Le ".date("d/m/y à G:i:s"); // ORDRE $requete = mysql_query("SELECT COUNT(id) AS Cpt FROM flauw_art1"); $array = mysql_fetch_array($requete); $ordre = $array['Cpt'] + 1; // AJOUT DANS LA BASE DE DONNES $sql = mysql_query("INSERT INTO flauw_art1 (id, name, hits, description, desc_courte, ordre, date, P1, M1, P2, M2, P3, M3, P4, M4, P5, M5) VALUES('', '$name' , '0', '$desc_long', '$desc_courte', '$ordre', '$date', '', '', '', '', '', '', '', '', '', '')"); // Recupération de l'ID du produit $id = mysql_insert_id(); $nb = rand(1000000, 1000000000); $fichier2 = "GAMME-".$id."-".$nb; // AJOUT DU FICHIER SUR LE SERVEUR if(move_uploaded_file($_FILES["srcfichier"]["tmp_name"][$i], $dossier.$fichier2.$extension)) { $photo[$i] = "1"; } else { $photo[$i] = "O"; } $urlA = $dossier.$fichier2.$extension; $urlB = substr($urlA, 2); $urlP = $domaine.$urlB; $urlMA = $dossier.$fichier2."_mini".$extension; $urlMB = substr($urlMA, 2); $urlM = $domaine.$urlMB; // ********************** Creation miniature *********************************** $PHOTO_mini = $fichier2."_mini"; switch ($extension) { case ".jpg": $imageSource2 = imagecreatefromjpeg($urlA); break; case ".peg": $imageSource2 = imagecreatefromjpeg($urlA); break; case ".JPG": $imageSource2 = imagecreatefromjpeg($urlA); break; case ".PEG": $imageSource2 = imagecreatefromjpeg($urlA); break; case ".png": $imageSource2 = imagecreatefrompng($urlA); break; case ".gif": $imageSource2 = imagecreatefromgif($urlA); break; } // dimensions de l image source $WSource2 = imagesx($imageSource2); $HSource2 = imagesy($imageSource2); // REDIMENSIONNEMENT et SAUVEGARDE de la PHOTO $W_max2 = 150; $H_max2 = 100; if($WSource2 > $W_max2 && $WSource2 >= $HSource2) { $W2 = 150; $H2 = ($W2 * ($HSource2 / $WSource2)); } elseif($HSource2 > $H_max2 && $HSource2 >= $WSource2) { $H2 = 100; $W2 = ($H2 * ($WSource2 / $HSource2)); } elseif($HSource2 > $H_max2 && $HSource2 = $WSource2) { $H2 = 100; $W2 = 150; } else { $W2 = $WSource2; $H2 = $HSource2; } // on cree une image vide aux dimensions de destination $imageDest2 = imagecreatetruecolor($W2, $H2); // redimensionnement de la photo imagecopyresampled($imageDest2, $imageSource2, 0, 0, 0, 0, $W2, $H2, $WSource2, $HSource2); // enregistrement de la PHOTO REDIMENSIONNEE avec la fonction appropriée : switch ( $extension ) { case ".jpg": imagejpeg($imageDest2, $dossier.$PHOTO_mini.$extension, 9); break; case ".JPG": imagejpeg($imageDest2, $dossier.$PHOTO_mini.$extension, 100); break; case ".peg": imagejpeg($imageDest2, $dossier.$PHOTO_mini.$extension, 100); break; case ".PEG": imagejpeg($imageDest2, $dossier.$PHOTO_mini.$extension, 100); break; case ".gif": imagegif ($imageDest2, $dossier.$PHOTO_mini.$extension, 100); break; case ".png": imagepng ($imageDest2, $dossier.$PHOTO_mini.$extension, 100); break; } // *************************** FIn miniature ******************************************* // AJOUT DU l'ADRESSE DE L'IMAGE DANS LA BBD $i2 = $i+1; $champP = "P".$i2; $champM = "M".$i2; $sql = mysql_query('UPDATE flauw_art1 SET '.$champP.' = "'.$urlP.'", '.$champM.' = "'.$urlM.'" WHERE id='.$id.''); //if($sql) { $champ[$i] = 0; } else { $champ[$i] = 1; } $champ[$i] = 0; } } // RECHERCHE DES ERREURS $erreur_P = array_search('1', $champ); if(empty($erreur_P) or !isset($erreur)) { echo "Ajout de "".$name."" effectué avec succès ! "; } else { echo "Une erreur est survenue. Merci de recommencer."; }
***********************************************************
A voir également:
- [PHP] Problème génération miniature
- Easy php - Télécharger - Divers Web & Internet
- Generation ryzen - Guide
- Réinitialiser chromecast 1ere génération - Guide
- Expert php pinterest - Télécharger - Langages
- Generation mot de passe - Télécharger - Sécurité