<input type="file" id="HelloWorld" accept=".txt"></input>
对象属性过滤具有特定扩展名的文件 - 但是有没有办法根据对象名称进行过滤?
Function.prototype === String.__proto__ //true
让我们说我想过滤一个名为&#34; HelloWorld&#34;的文件。扩展名为&#34; .txt&#34;。怎么可以这样做?
答案 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属性。