Node.js将文件上传到Buffer而不是/ tmp

Jak*_*son 5 file-upload node.js

在Node.js应用程序中,是否可以将文件(multipart/form-data)直接上传到服务器上的缓冲区而不是将文件保存到文件系统?

在伪代码中,您通常使用文件上载表单执行此操作

router.post('/upload', function(req, res, next){
  // file is saved to /tmp/dk3idkalel4kidkek
  // do some processing on the file
  // manually save file to /www/myapp/uploads/originafilename.ext
});
Run Code Online (Sandbox Code Playgroud)

是否可以跳过关于保存文件的部分,/tmp并将上传的文件作为缓冲区捕获并直接将其直接流式传输到目标目录?

一个例子是上传图像,然后优化图像,然后将其保存到预定目的地.您是否可以捕获传入的流,优化它然后保存它,所有这些都没有初始保存到/tmp目录?

Gar*_*ary 3

Multer是一个用于处理multipart/form-data的node.js中间件,主要用于上传文件。内存存储引擎将文件作为 Buffer 对象存储在内存中。当使用内存存储时,文件信息将包含一个称为缓冲区的字段,其中包含整个文件。

这应该完全符合您的需要。

你可以 在这里阅读更多