如何限制 <input type="file"> 使其只能选择 .pdf 文件?

Posted

技术标签:

【中文标题】如何限制 <input type="file"> 使其只能选择 .pdf 文件?【英文标题】:How to restrict <input type="file"> so that it can only select .pdf files? 【发布时间】:2011-06-05 18:30:19 【问题描述】:

默认可以选择所有类型的文件,如何限制只能选择.pdf文件?

【问题讨论】:

html file input field with limited file types? 的可能重复项 客户端这是不可能的 AFAIK。您需要检查@服务器端用户决定发布的确切内容。 查看File input 'accept' attribute - is it useful? 了解解决方法。 【参考方案1】:

简单地说:你不能使用普通的 html 和 javascript。最接近的方法是在提交表单之前使用 javascript 测试文件扩展名,如果不是.pdf,则向用户显示一些错误消息。如果您想实现这一点,您可能需要使用一些客户端解决方案,例如 Flash 上传控件。

【讨论】:

您不能使用 JavaScript 根据扩展名删除文件吗? @Šime Vidas,是的,确实可以使用 javascript 来测试所选文件的扩展名。【参考方案2】:

您可以使用表单上的accept 属性向浏览器建议限制某些类型。但是,您需要在服务器端代码中重新验证以确保。永远不要相信客户发给你的东西。

【讨论】:

【参考方案3】:

更明确...

<input type="file" accept="application/pdf" /> 

【讨论】:

为什么当 PC 没有安装 Adob​​e Reader 时这不起作用?今天发生在我身上...

以上是关于如何限制 <input type="file"> 使其只能选择 .pdf 文件?的主要内容,如果未能解决你的问题,请参考以下文章

<input type="file"> 按扩展名限制可选文件 [重复]

如何允许 <input type="file"> 只接受图像文件?

如何限制 input type=text 只能接受数字

js正则限制input框输入只能输入大于0的整数或者保留两位数的小数

防止 input type="number" 的值超过一个点并限制小数位数

如何修改input[type="file"]的默认样式