Javascript 带skipper的Sails.js:在开始上传之前检查文件输入是否为空
我使用的是Sails 11.1和skipper 0.5.5。 我有一个表单可以在我的应用程序中创建文章。图像可以附加到文章,因此有一个输入文件 在尝试开始上传之前,我想检查服务器端的输入文件是否为空 有可能吗?如果有,我怎么做 我试图检查Javascript 带skipper的Sails.js:在开始上传之前检查文件输入是否为空,javascript,node.js,sails.js,Javascript,Node.js,Sails.js,我使用的是Sails 11.1和skipper 0.5.5。 我有一个表单可以在我的应用程序中创建文章。图像可以附加到文章,因此有一个输入文件 在尝试开始上传之前,我想检查服务器端的输入文件是否为空 有可能吗?如果有,我怎么做 我试图检查req.files,或req.files.photo(“photo”是输入名称)和req.body.photo,但它们总是未定义,即使有文件。 req.file('photo')总是被定义的,所以我不能检查它 只需注意:当输入中填充文件时,上传工作正常 提前谢谢
req.files
,或req.files.photo
(“photo”是输入名称)和req.body.photo
,但它们总是未定义,即使有文件。
req.file('photo')
总是被定义的,所以我不能检查它
只需注意:当输入中填充文件时,上传工作正常
提前谢谢
PS:这个问题也可以在skipper GitHub问题上找到。几周前我在处理这个问题时找到的唯一有效解决方案是上传文件,然后查看是否上传了任何文件
req.file(inputname).upload({
dirname: targetLocation,
maxBytes: 2*1024*1024
},
function (err, uploadedFiles) {
// do stuff with uploadedFiles
});
我不知道为什么您的req.file(inputname)
即使在上载文件时也返回null
req.file(inputname).upload({
dirname: targetLocation,
maxBytes: 2*1024*1024
},
function (err, uploadedFiles) {
// do stuff with uploadedFiles
});
重要的是,请注意调用
req.file()
是很棘手的。最初我用它来确定文件大小、扩展名等。这似乎是一个很好的方法来避免上传任何无关的东西。但是,如果您没有在4.5秒内(默认值)通过upload()
调用跟踪该调用,则节点会因ETIMEDOUT错误而崩溃。我花了很长时间才弄明白,从那以后就再也没有抱怨过上述方法。是的,我知道这个解决方案,但我想知道我是否可以检查这个输入文件是否为空,因为其他人^^^谢谢你快速而好的回答。我注意到这个节点崩溃:x“我不知道为什么你的req.file(inputname)即使在上传文件时也返回null。”相反:它总是返回一个对象。