プロが教えるわが家の防犯対策術!

ブラウザにてmultipart/form-dataを使用してファイルアップロード処理をサーバ側で行っているのですが、csvファイル(拡張子csv)はcontenttypeがapplication/octet-streamとなります。
これをtext/plainとしたい場合どうすればよいのでしょうか?そもそも何を持ってcontenttypeって判定されているのでしょうか?
※もちろん、対象ファイルの拡張子をtxtに変えればtext/plainにはなりますが・・・

A 回答 (3件)

>クライアントの設定によるということなのでしょうか?


アップロード時のcontent-typeはサーバにpostする時にブラウザがpostデータに入れてくるのでPC側での設定です。

アップロードならpostデータの中にローカルのファイル名も一緒に送られてきますから、そこから拡張子を抜き出して判定してはどうでしょうか?(macで拡張子が付いてない場合はどうすればいいかわかりませんが)
サーバで実行する言語に合わせた場所で質問すればperlならモジュールとか、なんか便利な方法がわかるかも。
    • good
    • 0
この回答へのお礼

やっぱりクライアント側に依存しているんですね~。
csvファイルってExcelインストール有無でtext/plain、application/octet-streamになってしまうようなので、やはりファイル名の拡張子で判断するしかないですかね~(根本解決ではないですが・・・)

お礼日時:2006/09/13 22:45

質問通りPC(ローカルファイル)→サーバ時の話なら、


それはOS(ブラウザによっては独自のファイルを持ってる場合も?)の設定でWindowsならレジストリに設定されていて、拡張子との関連付けとかそのあたりで変更できたと思います。かなり自信ないですが。
CSVファイルのContent-typeがapplication/octet-streamでどういった問題が出ているかわかれば対策もあるかもしれませんね。

参考URL:http://www.chichibu.ne.jp/~kawahira/data/reglist …

この回答への補足

Content-typeはサーバ側が判定するものではなく、クライアントの設定によるということなのでしょうか?こちらがcsvをtext/plainで判定したいのは、application/octet-streamだと他の拡張子exeとかも許容するような仕組みになってしまうのを避けたいのです・・・。
でもクライアントの設定によってcontent-typeが決定してしまうというのであればどうしようもないですね・・・。
No.1さんのようにサーバ側で強制的にできないのかなぁ・・・。

補足日時:2006/09/13 09:54
    • good
    • 0

ファイルのダウンロードの話でしょうか?


Apacheであれば、.htaccessの設定で変えられます(設定にもよりますが)
cvsのあるフォルダに.htaccessを作って中身を、
AddType text/plain .cvs
とします。

参考
http://scrum.fuzoku.u-toyama.ac.jp/manual/mod/mo …
http://www.shtml.jp/htaccess/mime.html
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!