する方法はありますか?
レンタル共有サーバ上でWebアプリを作成していますが、
<form method='post' .... enctype="multipart/form-data">で、
アップロードするものと思っております。
ファイルをアップロードした次の処理で、どのMIME TYPEかを判定する
$_FILE['myfile']['type'] の方法があると思います。
しかし、上記 4種類の拡張子ファイルをアップロードしたとき、すべて
'application/octet-stream' となってしまった為、
PHP関数 mime_content_type を使いました。結果は↓になりました。
.xls = application/vnd.ms-excel
.ppt = application/vnd.ms-office
.doc = application/msword
.csv = text/plain
.csvだけ、期待はずれでした。
.csvだった場合、'text/comma-separated-values' と判定させるには
どうしたらよいでしょうか?
また、参考サイトをご教示いただけると有難いです。
.htaccess は使える環境です。
LAMP仕様は、
Apache/1.3.41
PHP/5.3.6
MySQL/5.5.14
FreeBSD/8.2
PHPの問題ではなく、Apacheのmime-typeが
text/csv csv
となっているためです。
mime-typeを定義している "(Apacheをインストールしたフォルダ)\Apache\conf\mime.types" を編集し、
text/comma-separated-values csv
と書き換えてください。
なお、".htaccess" に以下の記述を追加することでも実現できます。
AddType text/comma-separated-values csv
レジストリの設定が効いているのだと推察されます。
HKEY_CLASSES_ROOT\.csv\Content Type
上記のキーの値を application/vnd.ms-excel から text/comma-separated-values に変更して実施してみるとよろしいと存じます。
http://php.net/manual/ja/function.mime-content-type.php
ありがとうございます。
2012/12/14 11:06:53しかし、.htaccess に上記を書いたのですが、
mime_content_type関数の結果は、text/plain から変わらないです。
ただ、不思議なことに昨日パソコンにマイクロソフトOffice試用版を
インストールしたんですが、それ以降$_FILES['type']が
.xls --> application/vnd.ms-excel
.doc --> application/msword
.ppt --> application/vnd.ms-powerpoint
.csv --> application/vnd.ms-excel
に変化しました。
.csv が text/comma-separated-values になったらよかったのですが。。