我正在使用php和MySQL建立一个论坛,我希望将当前时间附加到用户为其个人资料上传的每个图像。我在上传的每个图像文件中使用了time()
函数,它对图像文件起作用,但是我无法将新文件名插入数据库。我想给每个图像一个唯一的名称,以防止覆盖。
好的,这就是我所做的:我将当前时间存储为$time
,将文件名存储在变量$photo
中,并尝试使用$photo .= $time
将该变量的值插入数据库因此它具有我对每个上传图像所做的文件名。但是,每次尝试都会将原始文件名插入到数据库中。
任何解决方法?
$image = $_FILES['photo']['name'];
$time = time();
$image .= $time;
删除现有照片
delete(image_dir/$row['current_photo.jpg']);
//不起作用,但我想要那样的东西
if(move_uploaded_file($_FILES['photo']['tmp_name'], 'image_dir/$image') {
$query = "INSERT INTO profile (user_id, profile_photo) VALUES($id, $image)";
mysqli_query($dbc, $query);
if(mysqli_affected_rows($dbc) == 1) {
echo "added to the database!";
}else {
echo "failed to add photo to the database";
}
}else {
echo "failed to upload photo";
}
如何将上传的图像赋予唯一的名称,因为原始图像名称会在每次尝试时插入数据库中?
我知道代码看起来很有趣:)。只是想表现出逻辑。
答案 0 :(得分:0)
如果您需要唯一ID,可以使用uniqid功能
$name=uniqid();
答案 1 :(得分:0)
您可能需要使用
$filename=uniqid();