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

ファイルパスから、そのファイルのMIMEを取得するようなShellコマンドor関数ってありますか?

ご存知の方、宜しくお願い致します。

A 回答 (2件)

がると申します。


んっと…1の段階では、「ヘッダ」と呼称される部分に、Content-typeという形でMIMEの情報が載っております。
そのために、取得が可能です。
2番で「データ(これはボディ部と呼称されます)」だけを保存していると思われるので。
だとすると、ヘッダ部がロストしてますから、3番での取得は難しくなります。

ですので、方法としては
・データ保存のタイミングでContent-type情報も一緒に保持するようなロジックにする
・#1さんが書かれているような「拡張子を基準にしたMIME type取得にする」
のいずれかになると思われます。
    • good
    • 0
この回答へのお礼

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

お礼日時:2006/09/27 19:23

そのようなコマンドはありません。


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";

たぶん動くと思います。

この回答への補足

有難うございます。
説明不足ですいません。

やりたいことは、
1,ファイルをCGIでUPLOADする。以下URLを参考にできました。
http://chaichan.hp.infoseek.co.jp/qa4000/qa4373. …
2,UPしたファイルをサーバ上に保存する。
3,そのファイルから、Mime-Typeを取得する。

ということです。
1の段階で、CGIモジュールで取れたものですから、
3の段階でも取れるのかと思いまして。

補足日時:2006/09/27 17:40
    • good
    • 0

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