我使用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.path
与memoryStorage()
一起使用时,multer
是未定义的。我如何使用memoryStorage
来完成这项工作?
答案 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);