簡體   English   中英

無法獲取圖像格式-生成EACCES錯誤

[英]can't get image format - spawn EACCES error

我正在使用ImageMagicK for NodeJS(gm)編寫NodeJs 0.10應用程序

我使用restify來創建API。

我試圖通過檢查其格式來確定上傳的文件是否為圖像。

我正在使用request.files.drink_image.path獲取上傳的圖像路徑,該路徑會導致/tmp/upload_72052b3fede5faccfe4cf20b59b341f2

該文件上ls -lsa的結果:

-rw-r--r-- 1 ufk users 8255 Jan  8 12:02 /tmp/upload_8ee3f234f8c04c67430f28f1336e9ba6

該文件上文件的結果:

/tmp/upload_8ee3f234f8c04c67430f28f1336e9ba6: PNG image data, 250 x 100, 8-bit/color RGB, non-interlaced

我正在從用戶ufk運行nodeJS。

當我嘗試使用以下代碼獲取格式時:

       gm(tempFilePath).format(function(err, value){
        console.log(inspect(err));
        console.log(value);
       });

我收到以下錯誤:

{ [Error: spawn EACCES] code: 'EACCES', errno: 'EACCES', syscall: 'spawn' }

我不知道為什么我會因為用戶ufk創建訪問錯誤而將其設置為rw

有任何想法嗎?

更新

好的,我沒有安裝ImageMagick或GraphicsMagick。 現在可以了! 但是如何從nodeJS檢查是否安裝了ImageMagick或GraphicsMagicK,以便顯示正確的錯誤消息。

您可以使用“哪個” shell命令來檢查“ gm”可執行文件。 嘗試https://github.com/arturadib/shelljs

if (!which('gm')) {
  // gm is not installed
  // return error message
}

您可以走得更遠,確保這是正確的可執行文件:

var e = exec('gm -version');
if (e.code !== 0) {
  // error
}
// parse e.output to make sure the right version is installed 
// e.g. GraphicsMagick 1.3.18 2013-03-10 Q16 http://www.GraphicsMagick.org/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM