0

<input type="file" accept="..."/>そのため、さまざまな MIME タイプの大きなリストを受け入れる標準があります。サーバー バックエンドでファイル タイプを確認済みですが、クライアント UI で有効なファイルを除外していないことを確認したいと考えています。古いブラウザはファイルをまったくフィルタリングしないことに気付きましたが、これで問題ありません。私の懸念は、最新のブラウザが MIME タイプを認識せず、実際に有効なファイルを除外する可能性があることです。

だから私の質問は基本的に、「受け入れる」属性はどれくらい信頼できるのですか? たとえば、Microsoft Office がインストールされていない場合、ブラウザーは .docx MIME タイプを認識しますか? また、一部のファイル タイプにはさまざまな MIME タイプが関連付けられていますが、MIME タイプの 1 つだけを挙げても問題はありませんか?

仕様がもともと MIME タイプを使用していた理由がわかりません。最初から拡張機能を使用していれば (chrome が受け入れるように)、はるかに単純になり、信頼性が高くなると思います。

私が現在使用している MIME の完全なリストについては、次のとおりです。

application/msword,
application/vnd.openxmlformats-officedocument.wordprocessingml.document,
application/rtf,
application/msexcel,
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,
application/vnd.openxmlformats-officedocument.spreadsheetml.template,
application/vnd.ms-excel.template.macroEnabled.12,
application/vnd.ms-excel.sheet.macroEnabled.12,
text/csv,
application/mspowerpoint,
application/vnd.openxmlformats-officedocument.presentationml.presentation,
application/vnd.ms-powerpoint.presentation.macroEnabled.12,
application/vnd.ms-powerpoint,
application/vnd.openxmlformats-officedocument.presentationml.template,
application/vnd.openxmlformats-officedocument.presentationml.slideshow,
application/pdf,
image/jpg,
image/jpeg,
image/png,
image/bmp,
image/gif,
text/plain,
message/rfc822,
application/vnd.oasis.opendocument.text,
application/vnd.oasis.opendocument.spreadsheet,
application/vnd.oasis.opendocument.presentation,
application/visio,application/vnd.visio,
application/vst,
application/vnd.visio.webdrawing,
application/x-mspublisher
4

1 に答える 1

1

この仕様では、拡張機能と MIME タイプを使用できます

実際、MIME タイプと拡張子の両方を使用することを推奨しています。

OSに MIME タイプの認識を要求することに関しては、MIME タイプはインターネット プロトコルのファイル識別子であるため、実際には意味がありません。実際には、MIME タイプのユーザー エージェント (ブラウザー) のサポートに依存します。これはかなり新しい構造であるため、ブラウザーが MIME タイプと拡張子の間で共通のマッピングを行うことによって最小限の "サポート" のみを行っていても、私は驚かないでしょう。ブラウザーが読み取り可能なすべてのファイルの統計をとって MIME タイプを判別しようとするとは想像できません (私の経験では、信頼できるとは言えません)。acceptの意図は、ファイル アップロード ダイアログの外観を変更することであると思われます。現在のブラウザーのリリースの速さを考えると、私は間違いなく間違っている可能性がありますが、まだそれを行っているブラウザーはないと思います。

それでも心配な場合は、OS ごとではなくユーザー エージェントごとに行う必要があるように思われるため、一般的なブラウザーで自分自身をテストできます。

于 2013-02-21T04:58:32.127 に答える