gpt4 book ai didi

php - 将 uniqid 保存在数据库和图片文件夹中

转载 作者:行者123 更新时间:2023-11-30 00:35:04 27 4
gpt4 key购买 nike

我正在学习如何使用唯一的 ID 重命名上传的图片(或文件),使其与其他上传的文件不同;将其保存到数据库中,以便可以将其作为用户图像调用并将其保存在图像文件夹中。

我的问题是,我已经弄清楚如何使用唯一的文件名重命名和保存图像,但我不知道如何将唯一的文件名保存在数据库中,以便它调用该确切的图像。它似乎将“数组”保存到数据库中,而不是唯一的文件名。

如果有人有任何想法我可以如何纠正这个问题,我将非常感谢学习经验哈哈:

<?php 

//This is the directory where images will be saved

//This gets all the other information from the form
$name=$_POST['name'];
$email=$_POST['email'];
$phone=$_POST['phone'];
$pic=pathinfo($_FILES["photo"]["name"]);

// Connects to your Database
mysql_connect("businessdb1.db.9878324.hostedresource.com", "user", "password") or die(mysql_error()) ;
mysql_select_db("businessdb1") or die(mysql_error()) ;

//Writes the information to the database
mysql_query("INSERT INTO `employees` VALUES ('$name', '$email', '$phone', '$pic')") ;

//Writes the photo to the server
if(move_uploaded_file($_FILES["photo"]["tmp_name"],
"avatars/" . uniqid() . '.' . $pic['extension']))
{

//Tells you if its all ok
echo "The file ". basename( $_FILES['uploadedfile']['name']). " has been uploaded, and your information has been added to the directory";
}
else {

//Gives and error if its not
echo "Sorry, there was a problem uploading your file.";
}
?>

最佳答案

您只需将生成的 id 保存在变量中,并在 INSERT INTO ...move_uploaded_file() 调用中使用。像这样的事情:

<?php
$name=$_POST['name'];
// .... snip ....

// switched to mysqli_ for the example, save the resulting db link (should check for connection errors too)
$db = mysqli_connect( /* login credentials */);
// generate the uniqid and save it to a variable
$file_uniq_id = uniqid();

// then use the generated id here
if(move_uploaded_file($_FILES["photo"]["tmp_name"],
"avatars/" . $file_uniq_id . '.' . $pic['extension']))
{

mysqli_query($db, 'INSERT INTO `employees` VALUES (
'.mysqli_query($db, $name).',
'.mysqli_query($db, $email).',
'.mysqli_query($db, $phone).',
'.mysqli_query($db, $file_uniq_id).')'); // And here, you can add path or extension as you see fit
}

您的代码中也存在一些与功能无关的问题:

  1. 始终转义您的查询参数,否则您将得到 SQL injection问题。
  2. 停止使用 mysql_* 函数,因为它们是 deprecatedmysqli_* 系列的工作原理几乎相同。

关于php - 将 uniqid 保存在数据库和图片文件夹中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22244621/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com