電子書籍の厳選無料作品が豊富!

プログラム初心者です

容量小さ目のmp3のアップ ロードする方法をおしえてください

拡張子はmp3のみ対応できれば満足です

画像をアップロードする場合と違うところはどこでしょうか?(気をつけなければいけないとこはありますか?)
IMEタイプはmp3の場合どうなりますか?

他のエラー処理は画像アップロードとほぼ同じだと思うので省略しています
下記の画像アップロードを少し改造して作れないでしょうか?(下記の部分だけわかればなんとかなるかもしれません)



// 画像ファイル情報取得
$info = getimagesize($tmp_name);//画像の幅、高さ、拡張子、<img>タグ内でそのまま使用できる文字列、ビット/ピクセル、チャンネル数、MINEタイプを配列で取得(偽装対策)

// 取得に失敗したときは画像ファイルではない
if ($info === false) {
throw new Exception('nogif');//画像ファイルではありません
}

// MimeTypeを調べる
switch ($info['mime']) {
case 'image/gif':
$mime = $ext = 'gif';
break;
case 'image/png':
$mime = $ext = 'png';
break;
case 'image/jpeg':
$mime = 'jpeg';
$ext = 'jpg';
break;
default:
throw new Exception('mime');//この種類の画像形式は受理できません
}

よろしくお願いします

A 回答 (3件)

>アップロードはできたのですが偽装がみやぶれないみたいです



(拡張モジュールがインストール出来るなら)KTaglibでも使って各種プロパティを確認するとか

http://www.php.net/manual/ja/book.ktaglib.php
    • good
    • 0
この回答へのお礼

回答ありがとうございます
レンタルサーバーでつかえるみたいですので
ローカルと使い分けすることにしました

お礼日時:2014/03/01 20:00

>次にfinfoを使いましたが同じくエラーがでました



RTFM.
http://www.php.net/manual/ja/fileinfo.installati …
    • good
    • 0
この回答へのお礼

レンタルサーバーでは使えるみたいです

お礼日時:2014/03/01 19:59

>画像をアップロードする場合と違うところはどこでしょうか?



ただのバイナリとして扱うだけです(当然getimagesize関数は使えません)。


>IMEタイプはmp3の場合どうなりますか?

ブラウザから送られてくるMIMEタイプはブラウザ依存&詐称可能なのでアテにしてはいけません。

phpから送り出すときのMIMEタイプを自前で(headerで)出すなら、お使いのサーバの設定に合わせればいいと思いますが、多くは"audio/mpeg"か"audio/mp3"だろうと思います。
    • good
    • 0
この回答へのお礼

回答ありがとうございます
アップロードはできたのですが偽装がみやぶれないみたいです
$_FILES['upfile']['tmp_name']をそのまま使うとまずいですよね?

mime_content_typeを使ってみましたがXAMPPではエラーがでました
$info = mime_content_type($_FILES['upfile']['tmp_name']);

Fatal error: Call to undefined function mime_content_type()


次にfinfoを使いましたが同じくエラーがでました
$finfo = new finfo(FILEINFO_MIME_TYPE);
$info = $finfo->file($_FILES['upfile']['tmp_name']);

Fatal error: Class 'finfo' not found in

使い方はあってますか?
他に方法があればよろしくお願いします

お礼日時:2014/02/28 20:35

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