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

Dan*_*Dan 0 php pdf imagemagick

我正在尝试创建这个问题中概述的pdf文件的jpg预览:如何在PHP中将PDF文档转换为预览图像?

这样做的相关代码是:

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

我在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]
Run Code Online (Sandbox Code Playgroud)

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

Vla*_*sev 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!";
   }
Run Code Online (Sandbox Code Playgroud)