• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:<input>で送信するfileのMIMEチェック)

<input>でcsvファイルのMIMEチェックをする方法

このQ&Aのポイント
  • <input type='file' accept='.csv'>を使用して、csvファイルのみを送信できるようにしたいと考えています。しかし、csvのMIMEタイプは環境によって異なるため、どのようにチェックすればよいかわかりません。
  • 現在、<input>タグのonChangeイベントでファイルのタイプをチェックしていますが、csvファイルのMIMEタイプはtext/csv、text/comma-separated-values、application/csv、application/force-downloadの4つのタイプが存在することがわかりました。しかし、他にもさらに多くのタイプが存在する可能性があるため、MIMEタイプだけでチェックすることは適切ではありません。
  • Excelやテキストエディタで作成されたcsvファイルは異なるMIMEタイプを持つことがあります。したがって、MIMEタイプだけでチェックするのではなく、より確実な方法を探す必要があります。送信する人が使用するアプリに制約を設けることはできませんので、別の方法を見つける必要があります。

質問者が選んだベストアンサー

  • ベストアンサー
  • think49
  • ベストアンサー率59% (285/482)
回答No.1

クライアント側のMIME-typesはUA設定依存なのでマイナーなフォーマットになるとあまりあてになりません。 MIME Sniffingを読む限りではbinaryのMIME-types判定に重きを置いているようです。 http://www.hcn.zaq.ne.jp/___/WEB/File_API-ja.html#dfn-type https://mimesniff.spec.whatwg.org/ 正しいファイル名が付与されているという性善説に立つなら、簡易的には「拡張子」が適切だと思います。 ただし、拡張子だけでは不十分なので、最終的にはサーバサイドでファイル内の文字列をパースしてCSVフォーマットであることを確定させる必要があります。 サーバサイドの負荷を減らすためにJavaScriptでパースすると更に良いと思います。 # Re: suffreさん

suffre
質問者

お礼

ありがとうございます! なかなか情報がなかったので助かりました! 一応サーバー側でもチェックしているのでjavascriptでのチェックはやめることにしました。 MIMEについて調べるだけでも時間かかってしまっていますし、なんか不毛な感じがしてきたので…。

関連するQ&A