2016-03-01 82 views
2

我试图使用Image Magick将文件写入特定位置,并使用uniqid()提供唯一的文件名(因为我期望许多图像被上传)。Image Magick将文件写入文件夹

继承人是我到目前为止有:

$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和必要的图像代表。

我recieving的错误是:

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

尝试调用

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

,而不是

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

解决了这个问题,救命! – PublicDisplayName

相关问题