multipart / form-data - 手动获取文件信息

时间:2017-07-14 09:24:30

标签: javascript node.js

我想弄清楚如何找到我上传到节点应用程序的文件大小。

这个问题的目的只是为了扩展我的知识。没有实际问题,只需要自己做点什么。

我的工作设置:

我发送文件(图片)。它被编码为multipart / form-data。在我的节点控制器中,我使用了工作良好的multiparty库。我这样使用它(示例不工作代码):

let form = new multiparty.Form(); 

form.on('part', function (part) {    
   //part contains the size of the file that is being sent.
});   

form.parse(request);

Part 对象包含有关上传的所有信息。我理解它的方式,多方库从标题中获取信息,并为我解析它。

我的问题是,如何在不使用任何其他库的情况下手动执行此操作?只需处理原始请求对象及其标题。

首先,至少要获取文件大小。如果我愿意(或有时间)从文件中获取其他值。

我的问题可能听起来很简单,但可能不是:)

1 个答案:

答案 0 :(得分:1)

你错过了论点:

form.parse(req, function(err, fields, files) {
  res.writeHead(200, {'content-type': 'text/plain'});
  res.write('received upload:\n\n');
  res.end(util.inspect({fields: fields, files: files}));
});

我相信,文件数组 - 每个都有你正在寻找的文件信息。