尝试加载文件时出现Imagemagick错误

时间:2014-06-06 20:00:37

标签: php pdf imagemagick

我正在尝试按照此问题中所述创建pdf文件的jpg预览:How do I convert a PDF document to a preview image in PHP?

这样做的相关代码是:

$im = new imagick('file.pdf[0]');
$im->setImageFormat('jpg');
header('Content-Type: image/jpeg');
echo $im;

我在pdf文件的本地主机上运行此操作,但收到错误:

Fatal error: Uncaught exception 'ImagickException' with message 'Imagick::__construct(): HTTP request failed! HTTP/1.0 400 Bad Request '

此处触发错误:

$im = new imagick(build_url('uploads/files/'.$file_data['file_name'].'[0]'));

这与上面示例代码中的第一行相同,我提供pdf文件的完整url路径,当我回显它提供了正确的路径

http://oursite.localhost:8888/uploads/files/file_name.pdf[0]

有谁知道导致此错误的原因是什么?谢谢!

1 个答案:

答案 0 :(得分:5)

ImageMagick作为HTTP客户端非常糟糕。首先下拉图像,然后将其作为blob

输入ImageMagick

使用以下内容:

 $image = file_get_contents(build_url('uploads/files/'.$file_data['file_name'].'[0]'));
 if ($image !== false)
   {
     $im = new imagick();
     $im->readImageBlob($image);
   }
 else
   {
     echo "Uh-oh... Cannot load image from URL!";
   }