首页 文章

在 NodeJS Multer 中将图像上传到服务器?

提问于
浏览
1

我有一个表单,用于将图像上传到 NodeJS Multer 中编写的后端。后端检查文件大小和文件类型,因此不允许用户上传任何其他文件,然后 png/jpg/gif。但是,没有什么能阻止用户将.zip(或任何其他类型)文件重命名为.png并上传到我的服务器。这会将文件存储在图像位置,稍后可能会在请求时返回到浏览器。

所以现在我的问题是,这是否是我应该关注的事情?是否可以用来对我的服务器或稍后将在浏览器中检索此假图像的用户造成任何损害?如果是这样我怎么能阻止这个?我不得不以某种方式检查图像是否是有效的图像文件?我是否必须使用像 Lwip 这样的东西?

1 回答

  • 1

    你可以查看文件的mimetype

    //File filter to send only videos  
    const fileFilter = (req, file, cb) => {
        // reject a file
        console.log(file.mimetype);
        if (file.mimetype.match(/^video\/\w+/)){
            cb(null,true);
        } else {
            console.log('File Extension not Allowed');
            cb(null, false);        
        }
     };
    
     //Multer
     const upload = multer({
       storage: storage,
       fileFilter: fileFilter
     });
    

相关问题