我正在创建一个cron作业,我将文件从一个directroy复制到另一个。 cron作业工作正常,它将文件复制到导入目录。导入目录的结构是这样的。
import
folder1
pdf_file1
folder2
pdf_file2
我正在尝试为每个复制到文件夹的pdf文件创建一个缩略图,我安装了ImageMagik和我的php代码来创建一个thumnail图像
if ($preview != "") {
$copy_res = ftp_get("files/upload/" . $ftp_upload["path"] . "/" . $preview, "files/import/" . $ftp_upload["preview"] . "/" . $preview);
$md5_checksum = md5("files/import/" . $ftp_upload["path"] . "/" . $preview);
} else {
//$pdf_file = 'files/import/folder1/pdf_file1';
$pdf_file = 'files/import/' . $ftp_upload["path"]."/".$filename_new;
if (file_exists($pdf_file)){
echo 'I am here';
exec("convert -density 300 " . $pdf_file . "[0]" . $filename_new . ".jpg");
}
}
当我运行代码时,它会进入else语句并回显该行,但它不执行exec命令。 我检查了命令提示符中的convert命令,导航到
C:\wamp\www\project\files\import\folder1
然后我运行此命令
exec("convert -density 300 test.pdf[0] test.jpg");
从命令提示符它起作用但在我的代码中它不起作用。 这条路有什么问题吗?因为当我尝试为它创建缩略图时,文件已被复制。
ImageMagik安装在
中 C:\Program Files(x86)\ImageMagik
任何想法我在做什么wron?还有其他更快的方法来为pdf创建缩略图吗?
提前致谢
答案 0 :(得分:1)
我现在编写代码从exec()中分离代码,以便您可以显示要发送到Imagemagick的信息。 我也会尝试在exec()
之外设置文件名$input = $pdf_file . "[0]";
$output = $filename_new . ".jpg"
$cmd = " -density 300 $input -thumbnail 200x300 $output ";
// echo $cmd."<br>";
exec("convert $cmd");
添加了调整大小,但它会保持图像比例 - 如果您需要精确的尺寸,您可以裁剪图像或用颜色填充它。
答案 1 :(得分:0)
似乎缺少一个空格,将路径分隔为pdf
文件和图像文件的新名称。
exec("convert -density 300 " . $pdf_file . "[0]" . $filename_new . ".jpg");
应该是:
exec("convert -density 300 " . $pdf_file . "[0] " . $filename_new . ".jpg");
-----------------------------------------------^