javascript - Sails.js 与船长 : check if file input were empty before starting upload

标签 javascript node.js sails.js

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

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

这可能吗?如果可以,我该怎么做?

我尝试检查 req.filesreq.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/

相关文章:

javascript - 用户系统的边缘情况

javascript - 如何 "duplicate"数组的内容

javascript - 在 Google map 街景 View 中绘制多段线

javascript - 如何设置 Kraken.js 生成器选项

node.js - 我正在尝试在 Ubuntu 16.04 中安装 nginx,但出现有关语言环境设置的错误

node.js - Sails.js 提供和产生 block

javascript - JavaScript Image 对象如何与浏览器缓存交互?

node.js - 替换 Express 4 中已弃用的 req.param()

用于 REST 的 Node.js Express? Express 中有 Controller 吗?

node.js - Sails.js 一对多关联