0

画像リサイザーで遊んでみましたが、次のコードが得られました

if (is_uploaded_file(@$_FILES['ulimage']['tmp_name'])){
        $targetfilename = ImageHelper::treatFilename(uniqid() . "_" . $_FILES['ulimage']['name']);
        move_uploaded_file($_FILES['ulimage']['tmp_name'], dirname(__FILE__) . "/tmp/" . $_FILES['ulimage']['name']);
        ImageHelper::resizeImage(dirname(__FILE__) . "/tmp/" . @$_FILES['ulimage']['name'], dirname(__FILE__) . "/tmp/" . $targetfilename, $width, $height);
    }

現時点では、元の画像とサムネイルは同じフォルダーに配置されます。

お知らせ下さい..

ソース

4

2 に答える 2

2

答えは次のとおりです。

if (is_uploaded_file(@$_FILES['ulimage']['tmp_name']))
{
        $targetfilename = ImageHelper::treatFilename(uniqid() . "_" . $_FILES['ulimage']['name']);
        move_uploaded_file($_FILES['ulimage']['tmp_name'], dirname(__FILE__) . "/tmp/" . $_FILES['ulimage']['name']);
        ImageHelper::resizeImage(dirname(__FILE__) . "/tmp/" . @$_FILES['ulimage']['name'], dirname(__FILE__) . "/tmp/thumb/" . $targetfilename, $width, $height);
}

しかし、使用する前に、ネットからコピー アンド ペーストしたコードを少し理解したいと思うかもしれません。システムをエスケープせずに @ を使用して $_ vars を使用してエラーを非表示にすることは、実際には信頼を求めていません...

編集:アドバイスをしていますが、説明もしたほうがいいかもしれません。

// first you check if the is done uploading in the tmp directory with is tmp name
if (is_uploaded_file(@$_FILES['ulimage']['tmp_name'])) 
{
     // here, you rebuild a explicit name using the original filename and a 
     // unique ID to avoid erasing another one   
     $targetfilename = ImageHelper::treatFilename(uniqid() . "_" . $_FILES['ulimage']['name']);

     // you rename the file an put it in ./tmp, a subdir of the 
     // script file (because of dirname(__FILE__))
     move_uploaded_file($_FILES['ulimage']['tmp_name'], dirname(__FILE__) . "/tmp/" . $_FILES['ulimage']['name']);

    // Here create a rezided copy
    // so it's here you can decide to make it go to ./tmp/thumb
    // make sure the dir exists before because you have no clue here
    // if ImageHelper will create it for you if not
    ImageHelper::resizeImage(dirname(__FILE__) . "/tmp/thumb/" . @$_FILES['ulimage']['name'], dirname(__FILE__) . "/tmp/thumb/" . $targetfilename, $width, $height);
}
于 2009-06-13T08:10:44.977 に答える
0

やあ、これは非常に難しそうに見えますが、Thumbnailerライブラリとそのアップロード ヘルパーを使用するだけで簡単に作成できます。

function callback(& $thumb) {
   $thumb->thumbSquare(100)->save("/tmp/thumb/".$thumb->filename);
}

Thumbnailer::upload('ulimage', 'callback');

非常に簡単 :)

于 2011-03-04T12:01:51.570 に答える