• 카테고리

    질문 & 답변
  • 세부 분야

    풀스택

  • 해결 여부

    미해결

multer 사용시 file 외 name값은 못받나용?

22.12.01 15:15 작성 22.12.01 15:16 수정 조회수 243

0

const formData = new FormData();
        formData.append('testimg', files[0]);
        formData.append('foldername', 'testfolder');
        formData.append('key1', 'value1');
        axios.post('/crm/arr_image', formData, {
            headers: {
                'Content-Type': 'multipart/form-data'
            }
        }).then((res) => {
            console.log('성공~~~~~~~~~~~');
        }).catch((err) => {
            console.log('에러입니다 에러');
            console.error(err);
        });

 

const upload = multer({
    storage: multer.diskStorage({
        // 경로를 설정
        destination(req, file, cb) {
            console.log(req);
            console.log(req.body);
            console.log(req.file);
            console.log(req.headers);
            console.log('원래 안찍히는거야? 왜 안찍혀?');
            try {
                fs.readdirSync(`uploads/${req.body.foldername}`);
            } catch (error) {
                fs.mkdirSync(`uploads/${req.body.foldername}`);
            }
            cb(null, `uploads/${req.body.foldername}`);
        },
        filename(req, file, cb) {
            //파일명 설정
            const ext = path.extname(file.originalname);
            const filename = randomChracter(6);
            console.log(filename);

            cb(null, filename + Date.now() + ext);
        },
    }),
});


안녕하세요! 질문 있습니다!

강좌에서는 Multer 밖에다가 폴더를 체크하고 만들었었는데

폴더 이름이 프론트의 input - value 값에 있어서 요청이 들어올때마다 체크를 해줘야 해서

위처럼 만들었는데요!

 

이게 axios 를 사용 안하고 그냥 post 요청하면 폴더가 생성이 되는데

formData 객체를 생성해서 name - value 값을 넣어줬는데

multer 내 req.body 내에 아무것도 안찍히더라구요?? ㅠㅠ

원래 이러는건가요? 아니면 코드상에 문제가 있는걸까요??

formData.append('foldername', 'testfolder');

요 값을 multer 내 req.body로 받을수는 없는걸까요? ㅠ

답변 1

답변을 작성해보세요.

1

받을 수 있습니다.

많이들 실수하시는데 formData.append 시 이미지를 가장 마지막에 append 하셔야 합니다.


formData.append('foldername', 'testfolder');
formData.append('key1', 'value1');
formData.append('testimg', files[0]);

 

 

헐...... 순서때문이었다니..... 감사합니다!!!!!!!! ^0^