我正在使用 Sails 11.1 和船长 0.5.5。 我有一个表单可以在我的应用程序中创建一篇文章。图像可以附加到文章中,因此有一个输入文件。
在尝试开始上传之前,我想在服务器端检查此输入文件是否为空。
这可能吗?如果可以,我该怎么做?
我尝试检查 req.files
或 req.files.photo
(“photo”是输入名称)和 req.body.photo
,但它们始终是未定义的,即使存在文件。
req.file('photo')
始终已定义,因此我无法检查它。
请注意:当输入填满文件时,上传有效。
提前致谢。
PS:这个问题也可以找here ,关于船长 GitHub 问题。
最佳答案
几周前我在处理此问题时发现的唯一有效解决方案是上传文件,然后查看是否已上传任何文件。
req.file(inputname).upload({
dirname: targetLocation,
maxBytes: 2*1024*1024
},
function (err, uploadedFiles) {
// do stuff with uploadedFiles
});
我不确定为什么即使上传文件,您的 req.file(inputname)
也会返回 null
。
重要的是,请注意调用 req.file()
很棘手。我最初用它来确定文件大小、扩展名等。似乎是避免上传任何不相关内容的好方法。但是,如果您没有在 4.5 秒(默认)内调用 upload()
调用,Node 将崩溃并出现 ETIMEDOUT 错误。我很难弄清楚这一点,从那以后我就没有提示过上述方法。
关于javascript - Sails.js 与船长 : check if file input were empty before starting upload,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31061719/