使用ImageMagick和PHP的PDF缩略图

使用ImageMagick和PHP的PDF缩略图,php,imagemagick,Php,Imagemagick,在搜索了Google等之后,我找到了这段代码,用于使用ImageMagick创建PDF文档的缩略图 对我来说,麻烦的是在我的WordPress主题中实现它。我认为我在缓存脚本需要的临时文件的路径上遇到了麻烦 我使用的是文章中描述的: 这一定是正确的(也许……但我认为我使用实际文件的完整URL是正确的),因为当我单击该URL时,我会进入一个页面,该页面显示以下错误: 无法读取文件:tmp/http://localhost/multi/wp-content/uploads/2012/03/samp

在搜索了Google等之后,我找到了这段代码,用于使用ImageMagick创建PDF文档的缩略图

对我来说,麻烦的是在我的WordPress主题中实现它。我认为我在缓存脚本需要的临时文件的路径上遇到了麻烦

我使用的是文章中描述的:

这一定是正确的(也许……但我认为我使用实际文件的完整URL是正确的),因为当我单击该URL时,我会进入一个页面,该页面显示以下错误:

无法读取文件:tmp/http://localhost/multi/wp-content/uploads/2012/03/sample.pdf.png

现在tmp是在thumbPdf.php脚本中定义的,但我不知道它的值应该是什么。它是url还是路径?像timthumb.php一样,我可以使它与thumbPdf.php脚本相关吗?(我尝试了./cache,这是timthumb中的设置-并确保在我的主题根目录中有一个/cache文件夹,但没有效果)。另外,仅供参考,我将/tmp文件夹放在我的根目录中,仍然会收到相同的错误

那么我如何配置tmp来实现这一点呢

我看到了这个答案:
我下一步就要去试试了

这个错误告诉了你所需要的一切

 Unable to read the file: tmp/http://localhost/multi/wp-content/uploads/2012/03/sample.pdf.png 
脚本当前尝试从服务器tmp/文件夹读取文件

 $tmp = 'tmp';
 $format = "png";
 $source = $pdf.'[0]';
 //$dest = "$tmp/$pdf.$format";
 $dest = "$pdf.$format";
请记住,从安全角度看,这看起来并不是很好,有人可能会利用ImageMagic bug,通过给您的脚本提供格式错误的外部源pdf来实现非常糟糕的事情。您至少应该检查映像是否来自允许的源,就像请求来自同一主机一样


使用ImageMagic的最佳方法是始终保存生成的图像,并且仅在生成的图像不存在时生成新图像。一些ImageMagic操作对大文件的处理非常繁重,因此您不想给服务器带来负担。

谢谢!很好的答案和提示。不幸的是,我没有办法真正测试这个,因为我不再从事这个项目了。
 $tmp = 'tmp';
 $format = "png";
 $source = $pdf.'[0]';
 //$dest = "$tmp/$pdf.$format";
 $dest = "$pdf.$format";