2015-01-16 3 views
0

나는 이것에 대한 온라인 리소스가 상당히 있음을 알고 있지만, 아무도 내가 좋아하는 방법을 사용하지 않는 것 같습니다.이미지 업로드 평균 스택

현재 "제출"버튼을 클릭하면 많은 입력이 서버에 전송되는 양식이 있습니다. 이것은 모두 일반적인 AngularJS 컨트롤러/서비스를 사용하여 json 요청을 통해 전송되며 결국 ExpressJS 라우터에서 처리하여 MongoDB에 저장합니다.

업로드 할 이미지 파일을 선택하려면 입력을 추가하고 싶습니다. 내가 온라인에서 찾은 모든 것은 사용자가 파일을 선택하자마자 즉시 서버에 복사되는 방식으로 수행되는 것으로 보입니다. 내가 원하는 건 아니야. 누군가 "제출"버튼을 클릭했을 때 어떻게 든 파일을 업로드 할 수 있는지 알고 있습니까? 그렇다면이 정보는 어디에서 찾을 수 있습니까?

감사

+0

[multer] (https://github.com/expressjs/multer) 또는 이와 유사한 것을 사용할 수 있습니다. – mvuajua

+0

Smillar 질문 및 솔루션 제시 [여기] (http://stackoverflow.com/questions/33280058/how-to-show-uploaded-images-to-the-sever-side-once-again-in-browser-using -mean-s/33280585? noredirect = 1 # comment54368273_33280585) –

답변

0

이 NPM 패키지를 살펴 보자는 : https://www.npmjs.com/package/express-fileupload

나는 파일 시스템에 파일을 저장하기로 결정했습니다하지만 당신은 쉽게 몽고에 저장합니다 변경할 수 있습니다

라우터

router.post(‘/foo’, function (req, res, next) { 
if (!req.files){ 
    res.redirect(‘/foo’); 
} 
let file = req.files.file; 
let fileName = req.files.file.name; 
if(sys.isJSFile(fileName)){ 
    //save to filesystem or mongodb 
    let filePath = path.join(‘./images’, fileName); 
    // Use the mv() method to place the file somewhere on your server 
    file.mv(filePath, function(err) { 
if (err){ 
     logger.error("Could not upload file: " + err); 
     res.redirect(‘/foo’); 
    } else { 
     res.redirect(‘/bar’); 
    } 
    } 
}); 

<form class="form-horizontal" action=“/foo” method="post" encType="multipart/form-data"> 
    <div class="form-group"> 
     <input class="form-control" type="file" name="file" /> 
    </div> 
    <div class="form-group"> 
     <input class="form-control" type="submit" value="Submit"/> 
    </div> 
</form> 
관련 문제