인프런 커뮤니티 질문&답변

유기쁨님의 프로필 이미지
유기쁨

작성한 질문수

Node.js 교과서 - 기본부터 프로젝트 실습까지

multer로 이미지 업로드하기

이미지 업로드 관련 질문

작성

·

152

0

안녕하세요.

multer를 이용한 이미지 업로드 강의 중에

post 라우터 코드 부분에서

destination을 'uploads/'로 설정하셨는데

이렇게 했을 경우, 이미지를 제대로 불러오지 못하더라구요.

그래서 저는 public에 img 폴더를 만들고 'public/img/'로 경로를 설정하니 문제가 해결되었는데

혹시 강의 코드가 잘못된 것인지 확인차 질문드립니다.

const upload = multer({
    storage: multer.diskStorage({
        destination(req, file, cb) {
            cb(null, 'uploads/');
        },
        filename(req, file, cb) {
            const ext = path.extname(file.originalname);
            cb(null, path.basename(file.originalname, ext) + new Date().valueOf() + ext);
        }
    }),
    limit: { fileSize: 5 * 1024 * 1024},
});

router.post('/img', isLoggedIn, upload.single('img'), (req, res) => {
    console.log(req.file);
    res.json({ url: `/img/${req.file.filename}` });
});

답변 2

0

유기쁨님의 프로필 이미지
유기쁨
질문자

답변 감사합니다!

0

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

uploads 폴더를 사용하시려면 추가적으로 app.js에 app.use('/img', express.static(path.join(__dirname, 'uploads')));

가 있어야 합니다.

https://github.com/ZeroCho/nodejs-book/blob/master/ch9/9.5/nodebird/app.js#L36

유기쁨님의 프로필 이미지
유기쁨

작성한 질문수

질문하기