有没有办法只接受输入按钮的某个名称的文件?

时间:2017-12-04 21:40:39

标签: html file input

<input type="file" id="HelloWorld" accept=".txt"></input> 对象属性过滤具有特定扩展名的文件 - 但是有没有办法根据对象名称进行过滤?

Function.prototype === String.__proto__ //true

让我们说我想过滤一个名为&#34; HelloWorld&#34;的文件。扩展名为&#34; .txt&#34;。怎么可以这样做?

2 个答案:

答案 0 :(得分:0)

不,您只能根据此页面提供mime类型:https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#attr-accept

  

接受

     

如果type属性的值是file,则该属性将为   指示服务器接受的文件类型,否则它将   被忽略了。该值必须是以逗号分隔的唯一内容列表   type specifiers:以STOP字符开头的文件扩展名   (U + 002E)。 (例如.jpg,.png,.doc)。

     

没有扩展名的有效MIME类型。

     
      
  • audio / *表示声音文件。
  •   
  • 视频/ *代表视频
  •   
  • 的文件。 HTML5图像/ *表示图像文件。
  •   

要明确检查您需要使用javascript执行某些操作的文件名,或者在您发布POST的后端执行此操作。

答案 1 :(得分:0)

“accept”参数仅过滤文件类型和扩展名(https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/file

您可以在表单发布或服务器端处理程序之前编写JavaScript处理程序,以捕获并验证选择了正确的文件名 - 事实上,如果您确实需要文件类型正确,您可能需要无论如何要做到这一点 - 如上面的参考文献中所述:

  

accept属性不验证所选文件的类型;它只是为浏览器提供提示,引导用户选择正确的文件类型。用户仍然可以(在大多数情况下)切换文件选择器中的一个选项,该选项可以覆盖它并选择他们想要的任何文件,然后选择不正确的文件类型。

     

因此,您应确保通过适当的服务器端验证来备份accept属性。