如何使用multer从memoryStorage创建ReadStream

时间:2019-01-29 11:59:12

标签: node.js multer

我使用multer将文件上传到我的API:

const multer = Multer({
    storage: Multer.memoryStorage(),
    limits: {
      fileSize: 5 * 1024 * 1024 // no larger than 5mb, you can change as needed.
    }
})

文件显示在const file = req.files["my_file_name"][0]

现在我要像这样创建一个readStream:

fs.createReadStream(file.path).pipe(stream);

问题是,当我将file.pathmemoryStorage()一起使用时,multer是未定义的。我如何使用memoryStorage来完成这项工作?

1 个答案:

答案 0 :(得分:0)

使用memoryStorage时不会获得file.path,您的文件将根据您的请求保存在缓冲区中。

req.file将具有信息{ fieldname, originalname, encoding, mimetype, buffer }

控制台上的输出流

const streamifier = require('streamifier');
streamifier.createReadStream(req.file.buffer).pipe(process.stdout);

以文件格式读取和写入流

const streamifier = require('streamifier');
var writeStream = fs.createWriteStream('./uploads/test.png');
streamifier.createReadStream(req.file.buffer).pipe(writeStream);

参考:File information