web-dev-qa-db-ja.com

HTMLファイル入力は.Zipファイルのみを受け入れます(.exeは不可)

これを私のファイル入力の受け入れフィールドに使用します:

application/Zip,application/x-Zip,application/x-Zip-compressed,application/octet-stream

結果:

  • Internet Explorer:.Zipのみを表示します。わーい。
  • FireFox:すべてのファイルを表示しますが、.Zipのみを表示するようにドロップダウンを変更できます。 .Zipをデフォルトのビューに変更することはできますか?
  • Chrome:.Zipと.exeを表示します。 .exeを除外するにはどうすればよいですか?

chromeが技術的に正しいことを知っていますが、ここではユーザーフレンドリーになるように努力しています。

14
2778

application/octet-streamは「キャッチオール」バケットです。ファイル名にそれを判別するのに役立つ拡張子がない場合、これはデフォルトのMIMEタイプです。それは、ChromeでのEXE表現のソースでもあると思います。

<input type = "file">を使用するときにファイル形式を制限しますか?

また、INPUT/Fileの「accept」属性を使用して削減することもできます。上記のリンクには、再生してテストできるJSFiddleページへのリンクもあります。

4
Jason

試す

<!-- (IE 10+, Edge, Chrome, Firefox 42+) -->
<input type="file" accept=".Zip,.rar,.7Zip" />
<input type="file" accept="Zip,application/octet-stream,application/Zip,application/x-Zip,application/x-Zip-compressed">
12
Waruna Manjula