当前位置: 首页 > 面试题库 >

使用multer上载时如何限制文件大小?

周翰池
2023-03-14
问题内容

我正在用multer创建一个简单的文件上传系统

var maxSize = 1 * 1000 * 1000;

var storage = multer.diskStorage({
  destination: function (req, file, callback) {
    callback(null, 'public/upload');
  },
  filename: function (req, file, callback) {
    callback(null, file.originalname);
  },
  onFileUploadStart: function(file, req, res){
    if(req.files.file.length > maxSize) {
      return false;
    }
  }

});

var upload = multer({ storage : storage}).single('bestand');

router.post('/upload',function(req,res){
    upload(req,res,function(err) {
        if(err) {
            return res.end("Error uploading file.");
        }
        console.log(req.file);
        res.redirect(req.baseUrl);
    });
});

一切正常,文件被上传。唯一不起作用的是最大大小的限制。我这样做是为了检查文件onfileupload
start的大小,如果文件过大,它将返回false。但是文件仍然只是上传。

似乎onFileUploadStart根本没有做任何事情。我尝试了console.log一些东西,但是什么也没有。

我究竟做错了什么?使用multer上载时如何限制文件大小?


问题答案:

onFileUploadStart新的multerAPI 没有。如果要限制文件大小,则应添加limits: { fileSize: maxSize }到传递给的对象multer()

var upload = multer({
  storage: storage,
  limits: { fileSize: maxSize }
}).single('bestand');


 类似资料:
  • 问题内容: 我目前正在实现使用jersey rest上传文件的功能。我想设置一个允许的最大文件大小,这对我来说似乎是很常见的要求。 我的第一种方法是使用Jerseys FormDataContentDisposition,它应该包含我可能需要的有关文件的所有信息。但是似乎缺少所有信息,除了文件名,包括文件大小。 这是我的休息方法: 由于返回的大小始终为“ -1”,因此不起作用! 我使用一个非常简单

  • 我在做什么,发生了什么? 我正在尝试上载grails中的文件,并将其删除。完成后,我仍然面临一个问题,即文件大小太大。例外情况如下: 我尝试和结果: 我发现这个问题之前问过,答案是放一些配置变量: 但仍然会出现同样的错误。我还尝试添加一些依赖项,如这里所述。或者关闭IDE并重建。什么都解决不了。 有人面对这个问题并能解决它吗?

  • 问题内容: 提交时是否有限制文件大小的选项? 例如:文件大小超过500K会产生警告。文件大小超过10M将会停止提交。 我完全知道这个问题,从技术上讲,它是一个重复的问题,但是答案仅是 push上的解决方案,对于我的要求而言为时已晚。 问题答案: 此预提交的挂钩将执行文件大小检查: .git / hooks / pre-commit 上面的脚本必须另存为启用执行权限()。 默认的软(警告)和硬(错误

  • 问题内容: 我在Django应用中有一个表单,用户可以在其中上传文件。 如何设置上传文件大小的限制,以便如果用户上传的文件大于我的限制,则该表格将无效并且会引发错误? 问题答案: 此代码可能会帮助:

  • 我正在尝试重命名一个与multer上传的图像文件的请求参数。 下面是我的代码: 它的工作很好,但我想知道它是否存在一些更干净和更容易与multer重命名功能。 它已经尝试过这样的事情: 但它不起作用,因为req尚未填充(未定义)。 我使用httpie使用以下命令测试我的代码: 有没有可能使用multer的重命名功能来做我用FS做的事情?还是有更好的办法? 谢谢你的反馈。 托玛斯 编辑 使用Disk

  • 问题内容: 我得到这个错误说 上传大约30MB的视频时, 这是设置代码 不确定如何设置maxFieldsSize属性,需要一些帮助!!! 问题答案: Express使用连接中间件,您可以使用以下命令指定文件上传大小 连接限制中间件