如何过滤文件输入,使其仅显示一种类型的文件

How do you filter a file input so that it only shows one type of file?

本文关键字:文件 显示 一种 类型 何过滤 过滤 输入      更新时间:2023-09-26

如何过滤文件输入,使其仅显示一种类型的文件?我试过这个,但没有用:

<input type="file" value="*.docx"/>

有一个 accept 属性可以添加到 <input> 元素中,以仅允许浏览某些文件扩展名:

<input type="file" value="*.docx" accept=".doc,.docx" />

参考资料 - https://developer.mozilla.org/en-US/docs/Web/HTML/Element/Input

如果 type 属性的值为 file,则此属性指示服务器接受的文件类型;否则将忽略它。该值必须是以逗号分隔的唯一内容类型说明符列表:

  • 以 STOP 字符 (U+002E) 开头的文件扩展名。(例如:".jpg,.png,.doc")

请记住,绕过此"限制"非常容易,任何具有最少 HTML 知识的人都可以通过在单击浏览按钮之前修改页面上的实际 HMTL 元素来浏览和选择"不支持"的文件类型。

正如 Lix 已经说过的,您可以使用 accept 属性,您可以按照本页所述使用它:

HTML 接受属性

但具体来说,".docx"扩展在某些浏览器中的接受属性存在一些问题。我建议您从提交时使用java脚本检查。

我在 VBScript 中找到了一些工作的东西:

<object id="Dlg" classid="CLSID:3050F4E1-98B5-11CF-BB82-00AA00BDCE0B" width="0" height="0"></object>
<script type="text/vbscript">
Sub OpenFile
     s = Dlg.openfiledlg(, , CStr("Word-documents (*.doc;*.docx;*.docm)|*.doc;*.docx;*.docm|"), CStr("Choose File"))
     If (Len(s) = 0) Then
          MsgBox "No file was selected."
     Else
          i2 = InStr(s, Chr(0))
          If i2 > 1 Then  s = Left(s, (i2 - 1))
          MsgBox "The selected file is " & s
     End If
End Sub
</script>
<button onclick="OpenFile">Open file</button>