簡體   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