2016-06-20 1 views
0

필자는 내가 무엇을하든 상관없이 멀터를 작동시킬 수 없다. 나는 문제에 관해서 발견 할 수있는 모든 것을 읽었고, 예를 들면 나는 그들에게 최선을 다했다.익스프레스 및 멀터를 사용하여 파일 업로드

Here is a JSFiddle link to my work.

실제로 업로드하는 경우에도 파일을 업로드 할 수없는 것 같습니다. 내 코드에는 내가있다

app.post('/submit', function(req, res) { 
    console.log("____ Clicked submit ____"); 
    console.log(req.body); 

    console.dir(req.files); 
}); 

req.body.attachment에는 첨부 된 파일 이름이 표시됩니다. 그러나 req.filesundefined을 반환합니다.

모든 도움에 감사드립니다.

답변

0

multer 핸들러를 미들웨어 체인의 어딘가에 사용해야합니다. 핸들러를 다음과 같이 정의했습니다 :

var upload = multer({ 
    dest: './tmp/' 
}); 

그러나 미들웨어 체인에서는 사용하지 마십시오.

특정 구현을위한 docs 읽기 1) 전역 핸들러를 사용합니다 (권장하지 않음 체인의 상단) 2) 당신의 submit 경로()에 사용하지만, :

이 두 가지 옵션이 있습니다 다음과 같이 작동해야합니다.

// Multer parses single field "attachment" 
app.post('/submit', upload.single('attachment'), function(req, res) { 
    console.log("____ Clicked submit ____"); 
    console.log(req.body); 

    // console.dir(req.files); 
    // for single field use `req.file`, not `req.files` 
    console.log(req.file); 
}); 
+0

나는 이것을 이미 시도했다. 나는 무언가를 잊어 버리고 있다는 것을 알았지 만, 여전히 이것은 정의되지 않은 것이됩니다. 그것은 아마도 내 밑줄에 내 스크립트에서 사용하는 스크립트와 관련이 있습니까? – Nxt3

+0

물론입니다. XHR을 통해 다중 요청을 다르게 처리해야합니다. 이것은 당신을 도울 수 있습니다 : http://stackoverflow.com/questions/5392344/sending-multipart-formdata-with-jquery-ajax – Nindaff

+0

나는 양식을 제출할 때 페이지를 다시로드하지 못하도록 그 여분의 스크립트를 추가하고있었습니다. 서버에서 양식 항목을 계속 처리하면서 페이지를 다시로드하지 못하게하려면 어떻게해야합니까? – Nxt3

관련 문제