读取上传的文件(使用multer中间件)

时间:2019-10-02 04:20:34

标签: node.js express middleware multer

我创建了一个拖放式electron应用程序,并将multernode结合使用,将文件上传到正在运行的express服务器上。

每当我上传文件时,如果文件很大(数百MB),如预期的那样,将文件实际复制到本地存储会花费一些时间。

我的问题是,我怎么知道何时将文件实际成功上传到文件存储区?在下面的代码中,initiateReadLogs()中  我正在尝试使用fs.createReadStream(eventstream.split())一次读取一行文件。但是,发生的是,当我读取文件时,它们似乎还没有完成保存到磁盘的操作(我使用fs.watch()fs.stats.size检查了文件的大小还在增加),然后我获取重复的文件。

这是标准的设置端点的方式:

// multer storage configuration
var storage = multer.diskStorage({
    destination:function(req,file,cb){
        cb(null,LOG_LOCATION)
    },
    filename: function(req,file,cb){
        cb(null,Date.now() + file.originalname);
    }
});
var upload = multer({ storage:storage });


app.post('/uploadLogs', upload.any(), (req, res, next) => {

    const files = req.files;
    if (!files) {
      const error = new Error('Please choose files')
      error.httpStatusCode = 400
      return next(error)
    }

    // Here I open a `ReadStream` to read each file
    task.initiateReadLogs(files, LOG_LOCATION);

    res.send(files);
})

0 个答案:

没有答案