繁体   English   中英

执行Imagemagick的转换返回错误代码1

[英]Executing Imagemagick's convert returning error code 1

[在Bonzo的答案后编辑]在以下代码之后,我收到此错误:

Array
(
    [0] => magick: unable to create temporary file 'aboutproject1.pdf': Permission denied @ error/pdf.c/ReadPDFImage/476.
)

如何允许创建临时文件? 我当前的用户是Daemon(apache / localhost)


[编辑前]我正在尝试从PHP发出shell命令以将PDF转换为TIFF。 但是我收到错误代码1。以下是我的代码:

<?php 
if(isset($_FILES['file_up']["name"])){
//print_r($_FILES);
$file_name = $_FILES['file_up']["name"];
$tmp_name = $_FILES['file_up']["tmp_name"];

if(move_uploaded_file($tmp_name, "$file_name")){

$onlyname = pathinfo($_FILES['file_up']['name'], PATHINFO_FILENAME);
chmod("$file_name", 0777);

//Command that is returning error code 1
//Iam running it on aboutproject.pdf STATIC for novv.
exec("/usr/local/Cellar/imagemagick/7.0.7-1/bin/convert aboutproject1.pdf anyuf.tif", $output, $retval);    

//returning empty array
echo "output : ->"; print_r($output) ;
//returning error code 1
echo "RETURN : ->".$retval;

if ($retval == 0){

    echo "First command executed !";    
    }
}

exit();
}
?>

请注意以下事项:

  • 授予驻留在aboutproject1.pdf中的文件夹和脚本的权限
  • 当我通过相同的PHP脚本进行man convert ,它会为我提供正确的输出(在同一文件夹中)
  • 当我通过终端运行命令时
  • aboutproject1.pdf由用户守护进程创建/上传(Apache)
  • 我已经尝试通过操作sudoer并为www-data(apache)添加特权来运行它作为SUDO,以运行脚本和转换而无需输入密码。

请帮助我,我被卡住了。

版本7使用magick而不是convert。 转换可能仍然有效,但这取决于Imagemagick的安装方式。

您可以尝试这种错误报告方法,看看是否获得更多信息:

$array=array();
echo "<pre>";
exec("/usr/local/Cellar/imagemagick/7.0.7-1/bin/convert aboutproject1.pdf anyuf.tif 2>&1", $array); 
echo "<br>".print_r($array)."<br>"; 
echo "</pre>";

与其使用/usr/local/Cellar/imagemagick/7.0.7-1/bin/convert,不如使用magick。 如果版本更改或imagemagick位置更改,则需要修改所有脚本。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM