仅发送非空文件

Posted

技术标签:

【中文标题】仅发送非空文件【英文标题】:send on post only files that are not empty 【发布时间】:2014-04-13 18:07:57 【问题描述】:

我在一个表单上有三个输入文件:

<td><input type="file" name="image_url1"/></td>
<td><input type="file" name="image_url2"/></td>
<td><input type="file" name="image_url3"/></td>

我只想发送(在发布时)我们选择的文件(输入文件保持为空 => 不发送)。

我该怎么做?

【问题讨论】:

您必须手动发出请求并仅通过 Ajax 调用或其他一些技术传递您想要的项目。为什么不能在 Server 端手动处理空项? 您仍然应该处理这个服务器端,而不是依赖客户端来确保文件不为空。 【参考方案1】:

您可以使用.length 检查文件长度,并禁用空控件。这样他们就不会被发布。

 $('input[type=file]').each(function () 
        if (this.value == "" || this.files.length == 0) 
            this.prop('disabled', true)
        

    );

更新: 如果你不使用 jQuery,你可以通过简单的 javascript 来做到这一点:

var myFiles = document.querySelectorAll("input[type=file]");
for(var i = 0; i<myFiles.length; i++)

   if(myFiles[i].value == "" || myFiles[i].files.length == 0)
   
      myFiles[i].disabled = true;
     

【讨论】:

以上是关于仅发送非空文件的主要内容,如果未能解决你的问题,请参考以下文章

如何在数组php中仅获取非空元素计数

Spring Mongo 仅通过新 POJO 的非空字段进行更新

Grails - 非空属性仅对并发用户引用空值或瞬态值错误

Swift @escaping 仅适用于非空函数参数?

如何使用 PowerShell 删除 OneDrive 中的非空文件夹?

java删除非空文件夹