【问题标题】:HTML file upload accept and reject file extensionsHTML 文件上传接受和拒绝文件扩展名
【发布时间】:2015-01-03 15:42:37
【问题描述】:

我很困惑在网上找不到这个问题的答案。

问题:

我正在使用 html 输入 (type='file') 来选择要附加到消息的文件。但我想限制它只允许上传图像和文档。我知道有一个accept 属性。但据我所知,我们可以通过传递image/* 来限制它接受图像。但我认为文档没有类似的限制器。但我可以添加我想要允许的单个扩展。我还想完全拒绝扩展名为 *.exe*.app 的文件。

问题:

我的问题是是否有一个类似于图像限制器的限制器我可能会丢失。或者,如果我添加文件类型的单个扩展名,我希望允许我必须添加哪些扩展名(请记住,用户在 Windows、Mac 和 Linux 上使用此服务)。

注意:我试图不让 js/jquery 用于此目的。

问候

【问题讨论】:

  • 您可以手动添加适当文档的扩展名,即.doc,.docx,.pdf,.txt
  • @Bijan 这就是我不确定 Mac、Windows 和 Linux 中有多少不同的组合文档类型的地方
  • images/* 是所有浏览器/计算机都可以打开的东西。但是documents/* 不会有一个,因为正如您所说,不同的操作系统具有完全不同的类型。只需接受文档的基本标准文件类型
  • 我不明白为什么不在 html input 标签中添加 reject 属性。猜猜将不得不求助于 JS/jQuery :(

标签: html html-input


【解决方案1】:

对于现代浏览器,您可以在 input 元素上使用 accept,您必须添加所有可以接受的文件,并删除您拒绝的文件。仅使用 HTML 就可以做到这一点,但如果您使用 JavaScript、PHP 等,则很容易被拒绝。由于 HTML 不是一种编程语言,您能做和不能做的事情是相当有限的。

<input type="file" accept="[everything but .exe and .app]">

正如您所提到的,您将不得不在此处放置大量文件。不幸的是,目前还没有您可以添加的 reject 属性。

注意:为了支持浏览器,您需要使用 JavaScript 或其他编程语言来检查文件的输入。否则,从我上面显示的内容来看,您只能在 HTML 中做所有事情。

我建议你只管用 JavaScript 来检查,这样会更容易。

【讨论】:

  • 在旧浏览器上会发生什么?他们会允许吗?
  • @ardaozkal 不,仅适用于 IE 10+ 和 Chrome、Firefox 等的相对更新版本。我将在答案中添加更多信息。
  • 您误解了这个问题。我想拒绝具有.app.exe 扩展名的文件。并允许图像和文档。
猜你喜欢
  • 2011-11-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-10
  • 2011-05-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多