我試圖讓我的web應用程序創建PDF文件上傳縮略圖使用下面的命令來創建:PDF縮略圖不能通過EXEC
exec("/usr/local/bin/convert '/path/to/file.pdf'[0] -background white -alpha remove -thumbnail 600x '/path/to/file.pdf.png'", $output, $return);
當我運行從它的工作原理命令行命令,既,當我使用運行它作爲根,當我運行它_www(Web服務器的用戶):
sudo -u _www /usr/local/bin/convert '/path/to/file.pdf'[0] -background white -alpha remove -thumbnail 600x '/path/to/file.pdf.png'
但當exec命令運行時,不創建的縮略圖。 $ output數組爲空,$返回值爲1(一般錯誤)。
此外,當我爲其他類型的文件生成縮略圖時,我完全沒有任何問題。例如我使用的GIF:
exec("/usr/local/bin/convert '/path/to/file.gif'[0] -thumbnail 600x '/path/to/file.gif'", $output, $return);
我對JPG,PNG或BMP也沒有問題。這導致我認爲問題可能與GhostScript有關,因爲只有PDF需要GhostScript來生成縮略圖。作爲最後一條評論,縮略圖生成在我的本地主機和我的服務器上均失敗。
我出來的想法,任何人都有嗎?謝謝!
我希望轉換爲您提供一些有意義的錯誤,您是否從過程中捕獲stdout和stderr?你最可能的問題是,當你執行轉換時,環境(例如PATH)是不同的,所以轉換根本找不到Ghostscript。 – KenS
謝謝,我從來沒有能夠捕捉到你提到的錯誤日誌,但是你的第二個評論讓我朝着正確的方向前進,請檢查我的答案以獲取詳細信息。 – Sophivorus