如何使输入类型只接受 PDF 文件?

Posted

技术标签:

【中文标题】如何使输入类型只接受 PDF 文件?【英文标题】:How to make input type should only accept PDF files? 【发布时间】:2019-02-02 05:59:36 【问题描述】:

如何使输入类型只接受 PDF,我在我的 html 中尝试过 accept="application/pdf" 但它仍然接受 pptx、xlsx、doc 等。

【问题讨论】:

您也应该始终对此类事情使用服务器端验证。以防万一你不是。 我如何使用 KnockoutJs 做到这一点?? 【参考方案1】:

accept 属性仅在某些浏览器上受支持,并非全部。用户上传文件后,我会编写一些 jquery 来检查文件扩展名。如果扩展名与您指定的不同,请清除该字段并发出警报。

我没有方便的示例,但实现起来并不难。

检查此SO question 以了解检查扩展名的方法。

【讨论】:

我如何使用 KnockoutJs 做到这一点?? 我不使用 KnockoutJS,所以我不熟悉它。看起来它支持 vanilla javascript。 This answer 可能会为您提供香草 JS 版本。【参考方案2】:

试试这个:

<input type='file' accept='.pdf' />

几个扩展:

<input type='file' accept='.pdf,.doc,.ppt' />

【讨论】:

以上是关于如何使输入类型只接受 PDF 文件?的主要内容,如果未能解决你的问题,请参考以下文章

如何使HTML中的输入框使其仅接受IP ADDRESS [重复]

如何使 HTML 输入标签只接受数值?

如何使 <input type="file"/> 只接受这些类型?

如何通过忽略每次按键上的无效字符来使文本类型的输入元素只接受一个数值(十进制、正数和负数)?

如何使 Pyqt5 QLineEdit 只接受数字

如何使 TextInput 只接受最多 2 个小数位的最大值?