输入类型="文件"属性接受在macbook上的Safari中不起作用

时间:2017-11-20 07:31:28

标签: html google-chrome safari

我有以下代码:



<div class="row">
  <div class="col-xs-12">
    <div class="form-group">
      <label for="attachments">Attach a file</label>
      <input type="file" id="attachments" accept=".doc,.gif,.jpeg,.jpg,.pdf,.png,.xls,.xlsx,.zip" name="attachments" class="form-control">
    </div>
  </div>
</div>
&#13;
&#13;
&#13;

它在Windows上的chrome浏览器中工作正常,但它在macbook的Safari浏览器中不起作用。

enter image description here

对此有何想法?

1 个答案:

答案 0 :(得分:0)

确实,Safari似乎不接受文件的扩展名为accept属性...
它可能被视为一个错误,因为他们会对这个确切的文件扩展名进行MIME检测...)

我现在看到的唯一解决方法是使用完整的MIME类型 但是这可能会导致某些浏览器将操作系统的MIME类型字典用于...文件扩展名的某些问题。

所以这里最好的做法是添加MIME和扩展。

<div class="row">
  <div class="col-xs-12">
    <div class="form-group">
      <label for="attachments">Attach a file</label>
      <input type="file" id="attachments" 
        accept="application/msword,image/gif,image/jpeg,application/pdf,image/png,application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/zip,.doc,.gif,.jpeg,.jpg,.pdf,.png,.xls,.xlsx,.zip" 
        name="attachments" class="form-control">
    </div>
  </div>
</div>
(从Apache's list获得了MIME)

另请注意,此accept属性应仅作为方便用户了解所需文件类型的方式,并且绝对不能检查您将获得哪种文件类型。你的实际列表看起来如此多样化,使用它没什么意义。