2014-09-30 9 views
1

내가 NodeJS busboy를 사용하여 서버에있는 이미지 파일을 업로드하려고 나는이 오류가 무엇입니까 :지원되지 않는 콘텐츠 형식 이미지/PNG

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

내가 노력하고 있어요 : 아래

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 

내 코드입니다 POSTMAN REST CLIENT을 사용하여 요청하십시오.

이 문제는 클라이언트에서 발생합니까 아니면 코드에서 chnages를 만들어야합니까? 클라이언트 (우편 배달부)에 Content-Type: image/png을 언급했음을 유의하십시오.

측면 질문 : 또한 이미지를 엄지 손가락으로 저장할 수있는 방법이 있습니까 ??

답변

3

busboy는 application/x-www-form-urlencodedmultipart/form-data 요청만을 구문 분석합니다. 원시 파일 데이터를 보내는 경우 수동으로 처리해야합니다 (파싱이 필요 없으므로 간단합니다).

+0

그럼 어떻게 이미지를 업로드하나요? 제안 할 수있는 라이브러리가 있습니까? 또는 어떤 예를 ?? – writeToBhuwan

+1

Postman은 HTML 양식 제출을 지원합니다.'multipart/form-data'의'Content-Type'과 함께 사용하고 파일을 양식에 추가하십시오. – mscdex

+0

여전히 같은 오류 – writeToBhuwan

관련 문제