人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Webアプリで Excel,Word,PowerPoint,csvをアップロード、ファイル判定
する方法はありますか?

レンタル共有サーバ上で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

●質問者: gdwtseq
●カテゴリ:ウェブ制作
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● oil999
●67ポイント

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


MIMEタイプの追加(AddType)

http://www.adminweb.jp/apache/docroot/index4.html


gdwtseqさんのコメント
ありがとうございます。 しかし、.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 になったらよかったのですが。。

2 ● 燕雀安知鴻鵠之志
●67ポイント

レジストリの設定が効いているのだと推察されます。

HKEY_CLASSES_ROOT\.csv\Content Type

上記のキーの値を application/vnd.ms-excel から text/comma-separated-values に変更して実施してみるとよろしいと存じます。

http://php.net/manual/ja/function.mime-content-type.php


3 ● boost_beast
●66ポイント

http://specialspringjoe.blogspot.jp/2010/09/webexcel.html
こちらが参考になるでしょうか?

違ってたらすいません。

関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ