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

时间:2015-12-22 23:39:01

标签: node.js file-upload

在Node.js应用程序中,是否可以将文件('brand_id' => 401,)直接上传到服务器上的缓冲区而不是将文件保存到文件系统?

在psuedo代码中,您通常使用文件上载表单

执行此操作
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 }); 并将上传的文件作为缓冲区捕获并将其直接流式传输到目标目录的部分?

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

2 个答案:

答案 0 :(得分:2)

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

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

您可以阅读更多here

答案 1 :(得分:1)

Multer模块使用busboy进行上传,因此另一种方法是使用busboy for express:connect-busboy