我正在尝试按照此问题中所述创建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]
有谁知道导致此错误的原因是什么?谢谢!
答案 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!";
}