• ベストアンサー

mimeの取得方法

ファイルパスから、そのファイルのMIMEを取得するようなShellコマンドor関数ってありますか? ご存知の方、宜しくお願い致します。

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

  • ベストアンサー
  • galluda
  • ベストアンサー率35% (440/1242)
回答No.2

がると申します。 んっと…1の段階では、「ヘッダ」と呼称される部分に、Content-typeという形でMIMEの情報が載っております。 そのために、取得が可能です。 2番で「データ(これはボディ部と呼称されます)」だけを保存していると思われるので。 だとすると、ヘッダ部がロストしてますから、3番での取得は難しくなります。 ですので、方法としては ・データ保存のタイミングでContent-type情報も一緒に保持するようなロジックにする ・#1さんが書かれているような「拡張子を基準にしたMIME type取得にする」 のいずれかになると思われます。

rabaraba
質問者

お礼

なるほど。。 わかりやすいご説明有難うございました!!

その他の回答 (1)

回答No.1

そのようなコマンドはありません。 MIMEタイプはウェブサーバーやブラウザの設定ファイルに書かれている内容ですから、 Perlなどで1行ずつチェックして、一致する物を見つけることは出来ると思います。 ウェブサーバーがApache2.xの場合は、 初期設定の場合はApache2.xのインストールしたディレクトリのconf/mime.types(など)に書かれています。 .htaccessにも記述することが出来ますので、mime.typesの内容が全てではありません。 シェルじゃなくてすみません。 #!/usr/bin/perl $fname='mime.types'; open(FP, $fname); my %types=(); while(<FP>){ next if(/^#/); chomp; next if(length($_)==0); ($val, $key)=split; %types{$key}=$val if($key ne ''); } close FP; $key = 'MIMEタイプを取得したいファイル名'; ($key)=($key=~/\.([^.]*)$/); print "拡張子:".$key.", mime-type: ".$types{$key}."\n"; たぶん動くと思います。

rabaraba
質問者

補足

有難うございます。 説明不足ですいません。 やりたいことは、 1,ファイルをCGIでUPLOADする。以下URLを参考にできました。 http://chaichan.hp.infoseek.co.jp/qa4000/qa4373.htm 2,UPしたファイルをサーバ上に保存する。 3,そのファイルから、Mime-Typeを取得する。 ということです。 1の段階で、CGIモジュールで取れたものですから、 3の段階でも取れるのかと思いまして。

関連するQ&A