2016-03-01 3 views
2

Я пытаюсь использовать Image Magick для записи файла в определенное место и использовать uniqid(), чтобы дать уникальное имя файла (как я ожидаю, многие изображения будут загружены).Изображение Магическая запись файла в папку

Вот что я до сих пор:

$targetdir = '/var/www/html/uploads/'; 
$targetfile = basename($_FILES["image"]["name"]); 

move_uploaded_file($targetfile,$targetdir); 

$image = new Imagick($_FILES['image']['tmp_name']); 
$uid = uniqid(); 

$image->setImageColorspace(imagick::COLORSPACE_RGB); 
$image->setImageFormat("jpeg"); 
$image->scaleImage(80,80); 
$image->setFilename($uid); 

$_FILES['image']->writeImageFile($targetdir); 

Файл первоначально JPEG.

Я использую Ubuntu 14.04 с необязательными делегатами для изображений.

Ошибки Я ПОЛУЧАТЬ является:

Call to a member function writeImageFile() on a non-object 

, который использует переменный $ TargetDir - однако, по php.net документации writeImageFile должен иметь целевой каталог для записи изображения.

Спасибо за ваше время

+0

Вы не можете установить имя файла - который должен быть строкой - в результате 'uniquid () '- это число. –

+0

Как я могу сделать изображение уникальным ID? Я удалил эту строку кода, и ошибка не изменилась. – PublicDisplayName

+0

Что-то вроде '$ uniquename = sprintf ("% d.jpg ", uniqid());' –

ответ

2

Try вызова

$image->writeImage($targetdir.$uid.".jpg"); 

вместо

$_FILES['image']->writeImageFile($targetdir); 
+0

Решила проблему прямо сейчас, спасатель! – PublicDisplayName

Смежные вопросы