2012-04-27 2 views
-1

Dans mon projet actuel, j'utilise le plugiciel plupload avec PHP et ImageMagick et son fonctionnement fonctionne correctement - maintenant ma prochaine tâche est de renommer les fichiers en minuscules. Pour renommer ces fichiers, je stocke d'abord l'image téléchargée dans un dossier temporaire avec une extension «.temp», que je déplace le fichier dans un dossier principal et là, je tente de faire un changement de nom. La première fois que la fonction est exécutée, s'il n'y a pas d'image correspondante, elle la stocke parfaitement, mais la seconde fois ne fonctionne pas aussi bien. La fonction devrait vérifier le nom de fichier existant et devrait stocker des répétitions avec un index incrémentiel, c'est-à-dire comme image_1.jpg, image_2.jpg, etc., mais au lieu de le faire, elle écrase simplement l'image, c'est-à-dire image.jpg.Renommer le fichier téléchargé en utilisant ImageMagick

Voici un extrait de mon code:

$filename = $this->input->post('filename'); 
    $root = $_SERVER["DOCUMENT_ROOT"]."/uploads/"; 
    $source_image = $root.'temp/'.$filename; 

    $image_name = explode(".",$filename); 
    rename($source_image, $source_image. '.temp'); 
    copy($source_image.'.temp', $root.$filename.'.temp'); 
    unlink($source_image.'.temp'); 

    $exp_temp_img_slash = explode(".",$filename); 
    $rename_img_a = strtolower($exp_temp_img_slash[0]); 
    $rename_img_b = $exp_temp_img_slash[1]; 

    if (file_exists($root.$rename_img_a .".".$rename_img_b)) { 
     $count=1; 

     while (file_exists($root. $rename_img_a ."_".$count. ".".$rename_img_b)) { 
      $count++; 
      $rename_img = strtolower($rename_img_a . '_' . $count . ".".$rename_img_b); 
     } 

     $renamed_image = $_SERVER["DOCUMENT_ROOT"]."/uploads/".$rename_img; 
     rename($root.$filename.".temp",$renamed_image); 
    } else { 
     $rename_img = strtolower($rename_img_a .".".$rename_img_b); 
     $renamed_image = $_SERVER["DOCUMENT_ROOT"]."/uploads/".$rename_img; 
     rename($root.$filename.".temp",$renamed_image); 
    } 

Toute aide sera appréciée, merci.

Répondre

0
shell_exec($imagemagick_folder."convert ".$from . $fileName." -resize ".$width."x".$height." -quality 95 ".$to.$fileName); 

$ imagemagick_folder est le dossier où imagemagick est installé (ex C:. \ Imagemagick)

$ de et $ sont respectivement le début et le dossier de destination

largeur de $ et de hauteur $ sont optionnels si vous voulez redimensionner l'image

Questions connexes