そのため、アップロードのユーザー オプションを特定のファイル拡張子のリストに制限したいと考えています。これは純粋にユーザーにとって使いやすくするためです。サーバーでのファイルタイプのアップロードも既に制限しています。
拡張子のリストはありますが、MIME タイプのリストはありません。受け入れられた拡張機能は潜在的に変更される可能性があるため、MIME タイプを動的に計算する完全に信頼できる方法はありません (むしろこれを避けたいと思います)。代わりに、拡張機能を要素の「accept」属性にフィードしたいと思います<input type="file">
。
これは Chrome では意図したとおりに機能しますが、FF や IE10 では機能しないことに気付きました (これらのブラウザーでは、すべてのファイルにフォールバックしているようです)。
これは標準の一部ではないことを認識していますが、(最新のブラウザー) クロスブラウザー フレンドリーな 'accept' 属性で MIME タイプの代わりに拡張機能を受け入れる方法はありますか? 使用したテストケース<input type="file" accept=".doc,.docx,.bad" />
これが不可能な場合、最善のアプローチは何ですか? 注: サーバー レジストリに使用する拡張機能のすべての MIME タイプが含まれるという保証はありません。このリストは非常に長くなる可能性があるため、MIME タイプのリストを手動で最新の状態に保つことは実際的ではありません (最後の手段になります)。 .