2

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

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

req._fileparser.form.bytesExpected

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

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

4

1 回答 1

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来访问和验证,如上面的答案所示。

于 2014-10-06T19:10:01.617 回答