我正在创建一个cron作业,在其中我将文件从一个直接复制到另一个直接。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 命令。我从命令提示符检查了我导航到的转换命令
C:'wamp'www'project'files'import'folder1
然后我运行这个命令
exec("convert -density 300 test.pdf[0] test.jpg");
从命令提示符下它可以工作,但在我的代码中它不起作用.路径有问题吗?因为当我尝试为其创建缩略图时,该文件已被复制。
ImageMagik 安装在
C:'Program Files(x86)'ImageMagik
知道我在做什么吗? 有没有其他更快的方法来为 pdf 创建拇指甲图像?
提前致谢
我现在编写代码,将代码从exec((中分离出来,以便您可以显示要发送到Imagemagick的信息。我也会尝试在 exec(( 之外设置文件名
$input = $pdf_file . "[0]";
$output = $filename_new . ".jpg"
$cmd = " -density 300 $input -thumbnail 200x300 $output ";
// echo $cmd."<br>";
exec("convert $cmd");
添加了调整大小,但它将保持图像比例 - 如果您需要确切的大小,您可以裁剪图像或用颜色填充它。
似乎缺少一个空格,用于分隔pdf
文件的路径和图像文件的新名称。
exec("convert -density 300 " . $pdf_file . "[0]" . $filename_new . ".jpg");
应该是:
exec("convert -density 300 " . $pdf_file . "[0] " . $filename_new . ".jpg");
-----------------------------------------------^