2012-04-27 19 views
-1

私の現在のプロジェクトでは、PHPとImageMagickでpluploadプラグインを使用していて、うまくいきました。ImageMagickを使用してアップロードしたファイルの名前を変更

これらのファイルの名前を変更するには、ファイルをメインフォルダに移動して名前を変更しようとするよりも、アップロードした画像を最初に「.temp」という拡張子の一時フォルダに保存します。初めて関数が実行されたときに、一致するイメージがない場合は完全に保存されますが、2回目には機能しません。この関数は既存のファイル名をチェックし、インクリメントインデックス(image_1.jpg、image_2.jpgなど)を含むリピートを保存する必要がありますが、image.jpgというイメージを上書きするだけです。ここで

は、私のコードの抜粋です:

$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); 
    } 

すべてのヘルプは、おかげで理解されるであろう。

答えて

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

の$ imagemagick_folderはImageMagickのがインストールされているフォルダ(例:C:\のImageMagickの。)で開始し、移動先のフォルダ

$幅と$の高さをしているために

$からと$イメージのサイズを変更する場合は、オプションです。

関連する問題