• 카테고리

    질문 & 답변
  • 세부 분야

    풀스택

  • 해결 여부

    미해결

이미지 업로드 관련 질문

20.07.21 18:54 작성 조회수 100

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

유기쁨님의 프로필

유기쁨

질문자

2020.07.21

답변 감사합니다!

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