2014-09-30 148 views
1

我試圖用NodeJS busboy上傳服務器上的映像文件,我收到此錯誤:不支持的內容類型圖像/ PNG

Service Listening for request on: 8080 
Error: Unsupported content type: image/png 
    at Busboy.parseHeaders (D:\ImageUploadService\node_modules\busboy\lib\main.j 
s:66:9) 
    at new Busboy (D:\ImageUploadService\node_modules\busboy\lib\main.js:21:10) 
    at D:\ImageUploadService\server.js:15:15 
    at Layer.handle [as handle_request] (D:\ImageUploadService\node_modules\expr 
ess\lib\router\layer.js:76:5) 
    at next (D:\ImageUploadService\node_modules\express\lib\router\route.js:100: 
13) 
    at Route.dispatch (D:\ImageUploadService\node_modules\express\lib\router\rou 
te.js:81:3) 
    at Layer.handle [as handle_request] (D:\ImageUploadService\node_modules\expr 
ess\lib\router\layer.js:76:5) 
    at D:\ImageUploadService\node_modules\express\lib\router\index.js:234:24 
    at Function.proto.process_params (D:\ImageUploadService\node_modules\express 
\lib\router\index.js:312:12) 
    at D:\ImageUploadService\node_modules\express\lib\router\index.js:228:12 

下面是我的代碼:

app.post('/uploadImage',function(req,res){ 
    var alias=req.query.alias; 
    var imagetype=req.query.imagetype; //can be media/profile 
    var busboy = new Busboy({ headers: req.headers }); 
    busboy.on('file', function(fieldname, file, filename, encoding, mimetype) { 
     var saveTo = ".\\Images\\"+alias+"\\"+imagetype+"\\"+filename; 
     if (fs.existsSync(saveTo)) { 
      file.pipe(fs.createWriteStream(saveTo)); 
     } 
     else{ 
      fs.mkdir(".\\Images\\"+alias+"\\"+imagetype,function(err){ 
       saveTo=".\\Images\\"+alias+"\\"+imagetype; 
       file.pipe(fs.createWriteStream(saveTo)); 
      }); 
     } 
    }); 
    busboy.on('finish', function() { 
     res.writeHead(200, { 'Connection': 'close' }); 
     res.status(200).end(); 
    }); 
    return req.pipe(busboy); 
}); 

我想使用POSTMAN REST CLIENT提出請求。

這是客戶的問題,還是我必須在代碼中做chnages?請注意,我在客戶端(郵遞員)提到Content-Type: image/png

旁邊的問題:另外,我有一種方式,我可以存儲圖像的拇指?

回答

3

店員只解析application/x-www-form-urlencodedmultipart/form-data請求。如果你發送的是原始文件數據,你必須手動處理(這很簡單,因爲不涉及解析)。

+0

那麼我該如何上傳圖片?你可以建議任何圖書館?或者任何例子? – writeToBhuwan 2014-09-30 18:11:59

+1

郵遞員支持HTML表單提交,只需使用'multipart/form-data'的'Content-Type'並將您的文件添加到表單。 – mscdex 2014-09-30 18:37:37

+0

仍然是相同的錯誤 – writeToBhuwan 2014-09-30 19:19:05

相關問題