Node.js (sails.js) 查找文件上传中发送的文件总数

pew*_*ers 2 node.js express sails.js skipper

我在sails.js 应用程序中有一个文件上传系统。我想在将上传内容保存到服务器之前对其进行处理。我在客户端的表单允许多个文件上传。现在在服务器端我怎么知道发送了多少文件?

例如,我可以使用以下命令从上传中找到预期的总字节数:

req._fileparser.form.bytesExpected
Run Code Online (Sandbox Code Playgroud)

但是,我找不到类似的东西来帮助我找到发送到服务器的文件总数。

还有上面的代码req._fileparser.form.bytesExpected,有没有更好的方法来获取客户端通过上传表单发送的文件的总组合文件大小?

bee*_*ree 5

在 Skipper 的 github 存储库中有一个文件:index.js

上述文件中的第 92 行,似乎处理分段文件上传,包含以下内容:

var hasUpstreams = req._fileparser && req._fileparser.upstreams.length;

您应该检查代码中上游的长度,看看它是否包含您发送的文件数。

另一种选择:从客户端在您的请求中发送一个带有上传文件数量的参数。

请参阅有关文本参数的船长自述部分。

Skipper 允许您以
常规方式访问其他非文件元数据参数(例如“photoCaption”或“commentId”)。这包括 url/JSON 编码的 HTTP 正文参数 (req.body)、查询字符串参数 (req.query) 或“路由”参数 (req.params);换句话说,在标准 AJAX 上传或 HTML 表单提交中发送的所有标准内容。像 req.param() 和 req.allParams() 这样的辅助方法也能工作。

我刚刚在 stackoverflow 上找到了以前的问题/答案

您可以尝试使用var upload = req.file('file')._files[0].stream访问和验证,如上面的答案所示。