0

我最近发现了一个错误,导致我的服务器在文件上传期间崩溃。

当用户点击文件输入,并选择要上传的文件时。如果用户在提交表单之前删除或重命名文件,Chrome 仍然会发送一个空文件。(而 Firefox 和 IE 正确处理错误)

用户单击“提交”按钮后,我尝试检查文件大小,但它不为空。

        if (file.size == 0) {
            NotificationFactory.AlertMessage({ messageType: "error", message: "File is missing" });
        }

我已经在服务器端处理了错误,但想在客户端添加一些验证。

4

1 回答 1

2

使用 JavaScript文件API,我们可以使用. 为了确保文件存在于 JavaScript 中,我们可以简单地:sizeelement.files[0].size

if(typeof el.files[0] !== 'undefined' && el.files[0].size > 0) {
    /* Success! */
}

我们typeof用来确保一个文件已经被实际选择(否则el.files[0]将是未定义的),然后如果通过,我们检查文件大小是否大于 0。

这是我在 Chrome 中测试过的JSFiddle 演示。

但是,作为重要说明,您仍然需要对禁用 JavaScript 的用户进行一些服务器端验证。

于 2013-10-07T08:01:19.533 回答