2009-06-13 3 views
0

Я пытаюсь играть с Resizer изображения, и я получил следующий кодКак сделать миниатюру в/tmp/thumb/и сохранить исходное изображение на/tmp/с помощью Image Resizer?

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

На данный момент, исходное изображение и эскиз место в той же папке.

Позвольте мне знать ..

Source

+0

Men, название как этот на самом деле не является очевидным. Можете ли вы подумать о чем-то более связанном с вашим вопросом? –

+0

ok .. дайте мне знать, что лучше всего подходит для названия .. – wow

+0

У вас был вопрос в вашем теле, я переместил его в заголовок. –

ответ

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 без escape-системы и с @, чтобы скрыть ошибку, на самом деле не вызывает доверие ...

EDIT: Я даю советы, но, возможно, лучше дать какое-то объяснение.

// 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); 
} 
+0

Я попытался .. thumb не создан в "/ tmp/thumb /" только сгенерированный только оригинальный размер. – wow

+0

Как я писал, «убедитесь, что каталог существует раньше, потому что у вас нет никакой подсказки, если ImageHelper создаст его для вас, если нет». Вы можете это сделать с помощью mkdir: http://fr.php.net/manual/fr/ function.mkdir.php –

+0

спасибо за ваше объяснение коду .. спасибо .. да, папка я создал (777), но эскиз тоже не прихожу. – wow

0

Эй человек, это выглядит очень жестким, но можно сделать просто с помощью Thumbnailer библиотеки и ее помощник загрузки:

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

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

Очень легко :)