如何使用 multer 从 memoryStorage 创建一个 ReadStream
How to create a ReadStream from memoryStorage with 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);
问题是,当我将 memoryStorage()
与 multer
一起使用时,file.path
未定义。如何使用 memoryStorage
进行这项工作?
当使用 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);
我使用 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);
问题是,当我将 memoryStorage()
与 multer
一起使用时,file.path
未定义。如何使用 memoryStorage
进行这项工作?
当使用 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);