質問: PHPで画像処理を書いているのですが、うまくいかず詰まってしまったのでみていただきたいです。本を見ながらやっています。 最初に画像をアップロードするのはできました。 ↓ 交流サイト:画像アップロード 交流サイト:画像アップロード トップページに戻る ' . $msg . ''; } ?> ですが、これに同名のファイルがあった場合に「年月日時分秒」とランダムの数字が入るようにしたくて下記のように変更しました。 交流サイト:画像アップロード 交流サイト:画像アップロード トップページに戻る ' . $msg . ''; } ?> エラーとしては、Fatal error: Uncaught Error: Call to undefined function exif_imagetype() in C:\Users\\Desktop\sample.php\samples\upload.php:9 Stack trace: #0 {main} thrown in C:\Users\\Desktop\sample.php\samples\upload.php on line 9と出ます。 私自身はあまりプログラム経験などないのでわかりませんので、教えていただけると助かります。よろしくお願いします。
回答: `exif_imagetype`が使えない環境という前提で ``` $pi = pathinfo($_FILES['image']['name']); $extensioon = $pi['extension']; ``` でアップロードされたファイル名から拡張子が取れると思います。 但し`exif_imagetype`と違ってアップロードされたファイルのファイル名から取得ですので例えばjpgファイルの拡張子をpngに変更したものをアップロードされた場合はpngとなります。 `exif_imagetype`はアップロードされたファイル名から取得ではなく画像の先頭バイトを確認して判別しますのでpngではなくjpgとなります。 質問文では「同名のファイルがあった場合に・・・」となっていますがコードを見る限り同名ファイルの有無にかかわらず必ず名前を変更しているようですが・・・処理が抜けていませんか?