Saya menghadapi masalah mengenai fungsi muat naik imej aplikasi PHP saya. Keadaannya adalah seperti berikut:
Saya mempunyai borang di mana pengguna boleh membuat siaran dan memuat naik imej yang berkaitan dengan siaran itu. Apabila saya memuat naik siaran pertama saya dengan imej yang dilampirkan, semuanya berfungsi dengan baik dan imej itu disimpan dengan betul ke pelayan di bawah folder yang dipanggil Muat Naik dan disimpan di bawah nama (contohnya, post1_image.jpg). Namun, masalah timbul apabila saya cuba memuat naik siaran kedua dengan imej berbeza dengan nama yang sama dengan imej pertama (contohnya, post1_image.jpg). Daripada menyimpannya sebagai imej baharu, ia menggantikan imej sebelumnya yang dikaitkan dengan siaran pertama. Bagaimanakah saya boleh mengubah suai kod PHP saya untuk memastikan setiap imej yang dimuat naik mempunyai nama yang unik dan tidak menimpa sebarang imej sedia ada? Berikut ialah versi ringkas kod PHP yang saya gunakan pada masa ini untuk mengendalikan muat naik imej:
<?php include "config.php"; // 与服务器建立连接 // 文件上传 if (isset($_FILES['fileToUpload'])) { $Errors = array(); $File_Name = $_FILES['fileToUpload']['name']; $File_Size= $_FILES['fileToUpload']['size']; $File_Tmp = $_FILES['fileToUpload']['tmp_name']; $File_Type = $_FILES['fileToUpload']['type']; $File_ext = end(explode('.',$File_Name)); $Extensions = array('jpeg','jpg','png'); if (in_array($File_ext,$Extensions) === false) { $Errors[] = "不允许上传此文件。您只能上传jpeg,jpg和png文件"; } if ($File_Size > 2097152) { $Errors[] = "您不能上传大于2MB的文件"; } if (empty($Errors) == true) { move_uploaded_file($File_Tmp,"upload/". $File_Name); }else{ print_r($Errors); die(); } } session_start(); $Title = mysqli_real_escape_string($conn,$_POST["post_title"]); $Description = mysqli_real_escape_string($conn,$_POST["postdesc"]); $Category = mysqli_real_escape_string($conn,$_POST["category"]); $date = date("D M,Y"); $Auther = $_SESSION['name']; $sql = "insert into post (title,description,category,post_date,author,post_img) values ('{$Title}', '{$Description}', {$Category}, '{$date}', '{$Auther}','{$File_Name}');"; $sql .= "Update category set post = post+1 where category_id = $Category;"; // $result = mysqli_multi_query($conn, $sql) or die ("Query unsucceful"); if (mysqli_multi_query($conn, $sql)) { mysqli_close($conn); header('Location: http://'.$hostname.'/cms/admin/post.php'); }else { echo "查询失败"; } ?>
Terima kasih banyak atas sebarang pandangan atau cadangan tentang cara menyelesaikan masalah ini! Terima kasih!
Anda boleh menggunakan fungsi uniqid() untuk memastikan setiap imej yang dimuat naik mempunyai nama yang unik.