인프런 커뮤니티 질문&답변
파일 업로드 파일 필터 재문의드려요~
작성
·
161
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
지식공유자
안녕하세요 ~
동영상 파일만 올리시고 싶으시면
프론트쪽에서 막는게 더 좋을수도 있습니다 ~
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>





