2012-05-04 150 views
0

我正在創建一個cron作業,在其中將文件從一個directroy複製到另一個。 cron作業正常工作,它將文件複製到導入目錄。導入目錄的結構是這樣的。從pdf創建圖像

import 
     folder1 
      pdf_file1 
     folder2 
      pdf_file2 

我試圖創建被複制到文件夾,每一個PDF文件的縮略圖,我安裝ImageMagik和我的PHP代碼來創建一個略圖圖像

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命令爲我導航到

,然後我運行此命令

exec("convert -density 300 test.pdf[0] test.jpg"); 

在命令提示符下它的工作,但在我的代碼是不是工作。 路徑有問題嗎?因爲當我嘗試爲它創建縮略圖時,文件被複制。

的ImageMagik安裝在

C:\Program Files(x86)\ImageMagik 

任何想法,我在做什麼wron?有沒有其他更快的方式來創建pdf的縮略圖?

在此先感謝

回答

0

似乎是分開的路徑pdf文件和圖像文件的新名稱缺少空間。

exec("convert -density 300 " . $pdf_file . "[0]" . $filename_new . ".jpg"); 

應該是:

exec("convert -density 300 " . $pdf_file . "[0] " . $filename_new . ".jpg"); 
-----------------------------------------------^ 
+0

仍然沒有工作,它沒有給出任何錯誤只是跳過exec命令:( –

+0

@FaryalKhan'exec()'可以返回您提供的命令的輸出。嘗試查看輸出中是否有錯誤。http://php.net/manual/en/function.exec.php –

+0

你是對的這是空間問題:)現在工作,但你能告訴我,如果我想做一個300x400的縮略圖應該怎麼做我做 ? –

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"); 

新增外的所有文件名,大小調整,但將保持圖像的比例 - 如果你需要的確切尺寸,你可以裁剪圖像或墊它的顏色。

+0

我需要200x300大小的縮略圖圖像嗎? –