8791 sujets

Développement web côté serveur, CMS

Bonjour à tous,

j'ai cherché un script sur le redimensionnement d'image tout en conservant le fichier original de la photo mais en vain pas grand chose.

j'ai crée ma fonction upload et je voudrais y adapter derrière le redimensionnement.

if(isset($_FILES["fichier"])){

switch($_FILES["fichier"]["error"]){
case 0: $erreur="Pas d'erreur"; break;
case 1: $erreur="Le fichier dépasse la taille max. définie sur le serveur (php.ini)"; break;
// directive upload_max_filesize
case 2: $erreur="Le fichier dépasse la taille max. définie dans le formulaire"; break;
case 3: $erreur="Le fichier n'a été que partiellement chargé"; break;
case 4: $erreur="Le fichier n'a pas pu être téléchargé"; break;
case 5: $erreur="Il n'existe pas de dossier temporaire, tel que défini par le serveur (php.ini)"; break;
// directive upload_tmp_dir
case 6: $erreur="Impossible d'écrire dans le dossier : vérifiez les droits"; break;
default: $erreur="Erreur inconnue"; break;
}
if($_FILES["fichier"]["error"]==0){
$depart=$_FILES["fichier"]["tmp_name"];
$arrivee="images/".$_FILES["fichier"]["name"];
// vérification qu'un fichier portant ce nom n'existe pas déjà
if(file_exists($arrivee)){
$erreur="Un fichier portant ce nom existe déjà";
} else {
if(move_uploaded_file($depart, $arrivee)){
header("Location:upload_reussi.php");
} else {
$erreur="Impossible de transférer le fichier";



Savez vous ou je pourrais me renseigner pour obtenir ce genre de script

merci beaucoup

bonne apres midi

jeje78
Administrateur
[ code ] !

Après avoir exécuté move_uploaded_file, il faut créer ta preview à partir de ce fichier, dans le même répertoire ou dans un autre.

Tu trouveras les fonctions suivantes dans la doc PHP :
imagecreatetruecolor
imagecreatefromjpeg
imagecreatefrompng
imagecreatefromgif
imagecopyresampled
imagejpeg


Et voici un petit bout de code pour te mettre sur la voie :

$jpgquality=90; // Qualité compression jpeg
$dest_width = 200; // Largeur image destination
$dest_height = 150; // Hauteur image destination
$source_file = $arrivee; // Fichier d'origine
$dest_path = 'thumbs/'.$arrivee; // Fichier de sortie (voir pour gérer le répertoire)

$dest_image = imagecreatetruecolor($dest_width,$dest_height);

if(preg_match('/\.(jpg|jpeg)$/i',$source_file))
    $source_image = imagecreatefromjpeg($source_file);
else if(preg_match('/\.(png)$/i',$source_file))
    $source_image = imagecreatefrompng($source_file);
else if(preg_match('/\.(gif)$/i',$source_file))
    $source_image = imagecreatefromgif($source_file);
else
    $source_image = false;

$dest_x = $dest_y = $source_x = $source_y = 0;

if($dest_image && $source_image) {
   imagecopyresampled($dest_image,$source_image,$dest_x,$dest_y,$source_x,$source_y,$dest_width,$dest_height,$source_width,$source_height);
    imagejpeg($dest_image,$dest_path,$jpgquality);
}


En décomposant ton problème en tâches simples je suis sûr que tu sauras quoi utiliser Smiley cligne
Modifié par dew (21 Apr 2008 - 17:36)
Bonjour , je m'en sors toujours pas avec cette fonction redimensionnement de l'image , la fonction upload marche nickel, seul la partie redimensionnement ne me crée pas de vignette.

Est ce quelqu'un pourrais m'aider

Merci beaucoup


bonne journee

 <?php
 // nombre de fichiers à uploader
 $nbr_fichiers = $_POST['nbr_f'];

 // boucle permettant d'uploader les fichiers un à un
 for($nbr=0;$nbr<$nbr_fichiers;$nbr++){

// on récupère les infos du fichier à uploader
 $fichier_temp = $_FILES['fichier_upload_'.$nbr]['tmp_name'];
$fichier_nom = $_FILES['fichier_upload_'.$nbr]['name'];

 // on défini les dimensions et le type du fichier
 list($fichier_larg, $fichier_haut, $fichier_type, $fichier_attr)=getimagesize($fichier_temp);

 // infos de contrôle du fichier
 $fichier_poids_max = 500000;
 $fichier_h_max = 1224;
 $fichier_l_max = 1632;

// dossier de destination
 $fichier_dossier = 'images/';

 // extension du fichier
 $fichier_ext = substr($fichier_nom,strrpos( $fichier_nom, '.')+1);

// on renomme le fichier
 $fichier_date = date("ymdhis");
 $fichier_n_nom = $nbr."_".$fichier_date.".".$fichier_ext;

 // on vérifie s'il y a bien un fichier à uploader
 if (!empty($fichier_temp) && is_uploaded_file($fichier_temp)) {

 // on vérifie le poids du fichier
 if (filesize($fichier_temp)<$fichier_poids_max) {

 // types de fichiers autorises 1=gif / 2=jpg / 3=png
 if (($fichier_type===1) || ($fichier_type===2) || ($fichier_type===3)) {

 // on vérifie si l'image n'est pas trop grande
 if (($fichier_larg<=$fichier_l_max) && ($fichier_haut<=$fichier_h_max)) {

 // si le fichier est ok, on l'upload sur le serveur
 if (move_uploaded_file($fichier_temp, $fichier_dossier.$fichier_n_nom)) {

// on donne un acces total sur le fichier
 chmod ($fichier_dossier.$fichier_n_nom, 0777); 
 }
 }
 }
 }
 }
 }
  // dimension maximale largeur et hauteur comprise
 $taille_max = 100;

 // si le fichier est plus grand que $taille_max on le miniaturise
 if (($fichier_larg > $taille_max) || ($fichier_haut > $taille_max)) {

 // définition des dimensions
 if ($fichier_haut > $fichier_larg){

 $mini_haut = $taille_max;
 $mini_larg = $fichier_larg / ($fichier_haut / $taille_max);

 }
 //si plus large que haut
 else {

 $mini_haut = $fichier_haut / ($fichier_larg / $taille_max);
 $mini_larg = $taille_max;

 }


 // si le fichier est un .gif
 if ($fichier_type === 1){

 // definition de l'image dont on va faire une miniature
 $fichier_source = imagecreatefromgif($fichier_dossier.$fichier_n_nom);

 // on prépare le fichier miniature qui accueillera l'image réduite
 $fichier_reduit = imagecreate($mini_larg, $mini_haut);

 // fond blanc pour l'image
 $fond_blanc = imagecolorallocate($fichier_reduit, 255, 255, 255);

 // dimensions x et y à donner au fichier
 $fichier_larg_red = imagesx($fichier_reduit);
$fichier_haut_red = imagesy($fichier_reduit);

 // on rajoute un mini_ defant le nom du fichier
 $nom_fichier_reduit = 'mini_'.$fichier_n_nom;

// on redimensionne l'image de base dans le fichier $fichier_reduit
 imagecopyresampled($fichier_reduit, $fichier_source, 0, 0, 0, 0, $fichier_larg_red, $fichier_haut_red, $fichier_larg, $fichier_haut);

 // on rend transparent le fond blanc
 imagecolortransparent($fichier_reduit, $fond_blanc);

 // crée le fichier réduit définitif
 imagegif($fichier_reduit, $fichier_dossier.$nom_fichier_reduit);

// on donne un acces total sur le fichier
 chmod($fichier_dossier.$nom_fichier_reduit, 0777);

 }

// si le fichier est un .jpg / .jpeg
 if ($fichier_type===2){

// définition de la qualité
 $qualite=80;

// definition de l'image dont on va faire une miniature
 $fichier_source = imagecreatefromjpeg($fichier_dossier.$fichier_n_nom);
// on prépare le fichier miniature qui accueillera l'image réduite
 $fichier_reduit = imagecreatetruecolor($mini_larg, $mini_haut);

// dimensions x et y à donner au fichier
 $fichier_larg_red = imagesx($fichier_reduit);
 $fichier_haut_red = imagesy($fichier_reduit);

// on rajoute un mini_ defant le nom du fichier
 $nom_fichier_reduit = 'mini_'.$fichier_n_nom;

// on redimensionne l'image de base dans le fichier $fichier_reduit
 imagecopyresampled($fichier_reduit, $fichier_source, 0, 0, 0, 0, $fichier_larg_red, $fichier_haut_red, $fichier_larg, $fichier_haut);

// crée le fichier réduit définitif
 imagejpeg($fichier_reduit, $fichier_dossier.$nom_fichier_reduit, $qualite);

// on donne un acces total sur le fichier
 chmod($fichier_dossier.$nom_fichier_reduit, 0777);

 }

// si le fichier est un .png
 if ($fichier_type===3){

// definition de l'image dont on va faire une miniature
 $fichier_source = imagecreatefrompng($fichier_dossier.$fichier_n_nom);

// on prépare le fichier miniature qui accueillera l'image réduite
 $fichier_reduit = imagecreatetruecolor($mini_larg, $mini_haut);

// dimensions x et y à donner au fichier
 $fichier_larg_red = imagesx($fichier_reduit);
$fichier_haut_red = imagesy($fichier_reduit);

// on rajoute un mini_ defant le nom du fichier
 $nom_fichier_reduit = 'mini_'.$fichier_n_nom;

// on redimensionne l'image de base dans le fichier $fichier_reduit
 imagecopyresampled($fichier_reduit, $fichier_source, 0, 0, 0, 0, $fichier_larg_red, $fichier_haut_red, $fichier_larg, $fichier_haut);

// crée le fichier réduit définitif
 imagepng($fichier_reduit, $fichier_dossier.$nom_fichier_reduit);

// on donne un acces total sur le fichier
 chmod($fichier_dossier.$nom_fichier_reduit, 0777);

 }

// si le fichier est plus petit que $taille_max pas besoin de le miniaturiser
 }
 else {
 $nom_fichier_reduit = $fichier_n_nom;
 }


merci beaucoup de votre aide

bonne journee
Modifié par jeje1978 (13 May 2008 - 12:33)
bonjour,

je n'ai toujours pas trouver, quelqu'un peux t il m'aider, je m'en sors pas

merci beaucoup

bonne journée

jeje78