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

zmdk5650님의 프로필 이미지
zmdk5650

작성한 질문수

따라하며 배우는 노드, 리액트 시리즈 - 유튜브 사이트 만들기

파일 업로드 파일 필터 재문의드려요~

작성

·

126

0

안녕하세요 답변주셔서 감사합니다

서버쪽에서 video.js 에서

var storage = multer.diskStorage ({

    destination: (req,file, cb) => {

        cb(null, "uploads/");

    },

    filename: (req,file,cb) => {

        cb(null, `${Date.now()}_${file.originalname}`)

    },

    fileFilter: (req,file,cb) => {

        const ext = path.extname(file.originalname)

        alert(ext);

        if(ext !== '.mp4'){

            return cb(res.status(400).end('only jpg, png, mp4 is allowed'), false);

        }

        cb(null, true)

    }

});

해당코드에서 fileFilter가 적용이 안되는거 같아요 동영상 업로드에서 동영상 파일이 아닌 것을 못올리게 막고싶은데 이상태로 동영상파일이 아닌것을 올리면 서버를 재시작해야하는 사태가 일어납니다.

어떻게 코드를 바꿔야할까요?? 

답변 1

0

John Ahn님의 프로필 이미지
John Ahn
지식공유자

안녕하세요 ~ 

동영상 파일만 올리시고 싶으시면 
프론트쪽에서 막는게 더 좋을수도 있습니다 ~ 

Dropzone에서 막으시면 되는데 

accept 속성을 사용해주시면 됩니다 ~ 

<Dropzone
accept="video/*"
onDrop={onDrop}
multiple={false}
maxSize={800000000}>
{({ getRootProps, getInputProps }) => (
<div style={{ width: '300px', height: '240px', border: '1px solid lightgray', display: 'flex', alignItems: 'center', justifyContent: 'center' }}
{...getRootProps()}
>
<input {...getInputProps()} />
<Icon type="plus" style={{ fontSize: '3rem' }} />

</div>
)}
</Dropzone>

zmdk5650님의 프로필 이미지
zmdk5650

작성한 질문수

질문하기