Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 带skipper的Sails.js:在开始上传之前检查文件输入是否为空_Javascript_Node.js_Sails.js - Fatal编程技术网

Javascript 带skipper的Sails.js:在开始上传之前检查文件输入是否为空

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')总是被定义的,所以我不能检查它 只需注意:当输入中填充文件时,上传工作正常 提前谢谢

我使用的是Sails 11.1和skipper 0.5.5。 我有一个表单可以在我的应用程序中创建文章。图像可以附加到文章,因此有一个输入文件

在尝试开始上传之前,我想检查服务器端的输入文件是否为空

有可能吗?如果有,我怎么做

我试图检查
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。”相反:它总是返回一个对象。