【问题标题】:Delay Multer file upload延迟 Multer 文件上传
【发布时间】:2018-10-20 14:19:42
【问题描述】:

我在 MERN Stack 应用程序中使用 Multer 在 POST 时上传多个文件以创建新的图片库。

router.post('/gallery', upload.array('photos', 5), galleryController.createGallery);

但是,在我确认尚不存在此用户的图库之前,我不希望上传文件。

在我确认应该创建此图库之前,有谁知道如何延迟文件上传?或者,如果这不可能,有没有办法“回滚”上传并从此上传中删除图片?

感谢您的指导。

【问题讨论】:

    标签: express multer


    【解决方案1】:

    当您使用任何预定义的默认值(例如 .single().array().fields() 等)时,您无法对上传进行任何形式的控制。

    您需要提供自定义storage 引擎才能完成您的要求。在此处查看文档:https://www.npmjs.com/package/multer#storage

    const storage = multer.diskStorage({
      destination: (req, file, cb) => {
        // Do logic to delay the file upload if needed by throwing error
      },
      filename: (req, file, cb) => {
        // ...
      }
    })
    
    const upload = multer({ storage: storage })
    

    【讨论】:

    • 感谢您的回复。我确实看到了一个类似于上面的示例,它检查文件的属性(例如:文件大小),然后确定是否上传。但是,我不太确定如何根据 Async DB 查询的结果进行延迟。在查看了您的示例代码并进一步考虑了这一点之后,我应该已经准备好了。再次感谢!
    猜你喜欢
    • 1970-01-01
    • 2018-07-21
    • 2018-02-25
    • 1970-01-01
    • 2017-08-30
    • 2018-05-27
    • 2019-07-31
    • 2020-05-31
    相关资源
    最近更新 更多