PHPで画像処理を書いているのですが、うまくいかず詰まってしまったのでみていただきたいです。本を見ながらやっています。
最初に画像をアップロードするのはできました。
↓
ですが、これに同名のファイルがあった場合に「年月日時分秒」とランダムの数字が入るようにしたくて下記のように変更しました。
<?php $msg = null; if (isset($_FILES['image']) && is_uploaded_file($_FILES['image']['tmp_name'])){ $old_name = $_FILES['image']['tmp_name']; $new_name = date("YmdHis"); $new_name .= mt_rand(); switch (exif_imagetype($_FILES['image']['tmp_name'])){ case IMAGETYPE_JPEG: $new_name .= '.jpg'; break; case IMAGETYPE_GIF: $new_name .= '.gif'; break; case IMAGETYPE_PNG: $new_name .= '.png'; break; default: header('Location: upload.php'); exit(); } if (move_uploaded_file($old_name, 'album/' . $new_name)){ $msg = 'アップロードしました。'; } else { $msg = 'アップロードできませんでした。'; } } ?> <html> <head> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <title>交流サイト:画像アップロード</title> </head> <body> <h1>交流サイト:画像アップロード</h1> <p><a href="index.php">トップページに戻る</a></p> <?php if ($msg){ echo '<p>' . $msg . '</p>'; } ?> <form action="upload.php" method="post" enctype="multipart/form-data"> <input type="file" name="image"> <input type="submit" value="アップロード"> </form> </body> </html>エラーとしては、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と出ます。
私自身はあまりプログラム経験などないのでわかりませんので、教えていただけると助かります。よろしくお願いします。
回答2件
あなたの回答
tips
プレビュー