<input type="file">でcsvのみを送信できるようにするために、jQueryでtypeチェックしているのですが、csvのMIMEがPC(ブラウザ)環境によっていろいろあるみたいですが調べても出てこないのでお教えください。
html ------------------------------
<input type="file" accept=".csv" onChange="checkFile();">
----------------------------------
javascript -------------------------
function checkFiles(){
var files = $('input').prop('files');
for (file in files){
console.log(files[file].type);
}
}
----------------------------------
これを実行すると、環境によってfiles[file].typeが以下の4種類あることがわかりました。
text/csv
text/comma-separated-values
application/csv
application/force-download
最初はここまでcsvの種類があるのが知らずに上から2つまでチェックしていたのですが、他の環境だと上記の4つまで出てきました。
もしかしたらさらに多くの種類があるのでは・・・?と思ってしまいますが、そもそも送信するのにcsvかどうかチェックするのにMIMEではダメなのでしょうか?
ちなみにcsvファイルはExcelで出力したり、テキストエディタなどで作ったファイルです。
送信する人が作るのでどのアプリで作ってくださいと指定はできません。
どうぞよろしくお願い致します。
No.1ベストアンサー
- 回答日時:
クライアント側のMIME-typesはUA設定依存なのでマイナーなフォーマットになるとあまりあてになりません。
MIME Sniffingを読む限りではbinaryのMIME-types判定に重きを置いているようです。
http://www.hcn.zaq.ne.jp/___/WEB/File_API-ja.htm …
https://mimesniff.spec.whatwg.org/
正しいファイル名が付与されているという性善説に立つなら、簡易的には「拡張子」が適切だと思います。
ただし、拡張子だけでは不十分なので、最終的にはサーバサイドでファイル内の文字列をパースしてCSVフォーマットであることを確定させる必要があります。
サーバサイドの負荷を減らすためにJavaScriptでパースすると更に良いと思います。
# Re: suffreさん
ありがとうございます!
なかなか情報がなかったので助かりました!
一応サーバー側でもチェックしているのでjavascriptでのチェックはやめることにしました。
MIMEについて調べるだけでも時間かかってしまっていますし、なんか不毛な感じがしてきたので…。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- JavaScript clear機能を失わずにファイルアップロード機能を作成したい 3 2023/06/10 16:12
- その他(プログラミング・Web制作) pythonのこのエラーがわかりません 3 2022/11/16 14:54
- JavaScript アップロードファイルの種類によって処理を分岐させたいのですが書き方が分からずアドバイスお願いします 4 2023/06/17 19:12
- HTML・CSS CSSが効かずどのように指定すれば良いか分からないのでアドバイスお願い致します 2 2023/06/07 12:25
- PHP imageフォルダに、画像をリサイズして保存する時のファイル名を変更したい 1 2023/05/30 11:39
- PHP 値の取り出し方について教えて下さい。 1 2023/03/31 13:30
- HTML・CSS 私の能力からして間違っていないような気がします。 4 2022/09/30 13:24
- PHP PHP MySql 画像を取得 1 2022/06/04 14:05
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
JavaScriptでファイルの保存
-
JavaScriptによる....
-
jsでルートディレクトリより上...
-
ブラウザからエクセルを開く方法
-
ブックマークレットが動かない。
-
ブラウザ上でjavascriptを編集...
-
JavaScriptで ブラウザの閉じる...
-
jqGridの入力内容をサーバに保...
-
javascript 文字列の最後から1...
-
一定時間ごとの実行
-
VB.NET2003 テキストボックスに...
-
Excel VBA にて JavaScript の...
-
【JavaScript】ソースのコメン...
-
confirm()をはい/いいえ に切...
-
ラベルの色がかわってくれない
-
Vba SelStart、SelLen教えてく...
-
時間稼ぎの命令文とは?
-
画面間でのJavaScrip...
-
alert()が実行できない
-
JavaScriptでショートカットキ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ブラウザからエクセルを開く方法
-
Ajaxが動きません~『status=0』?
-
JavaScriptでテキス...
-
jsでルートディレクトリより上...
-
javascriptでのmdb接続について
-
JavaScriptによる....
-
JavaScriptでファイルの保存
-
ローカルのtest.txtを1行ずつ...
-
ブックマークレットが動かない。
-
JavaScriptで掲示板
-
ActiveXObjectについて
-
ローカル環境で動作しないJavaS...
-
ブラウザ上でjavascriptを編集...
-
javascriptでテキストファイル...
-
javascriptによるメール送信
-
クリックカウンターの挙動がお...
-
Illustrator でjavascriptによ...
-
ajax 通信 iisの設定?
-
html組込み時のカレントフォル...
-
外部SVGの参照
おすすめ情報