我在数据库中有一个图像表,其中包含 ID(它是一个自动递增的帖子编号)、文件名(上传文件自己的名称)和时间戳等。
我将文件上传到目录并将信息添加到表中。在上传并将信息放入数据库表后,我想使用目录中数据库表中的 ID 号(或订单号)更改文件名。
请记住,我是 php 的初学者,我想通过代码的解释来学习。比如哪个字符串代表什么,哪个方法代表什么..
非常感谢您抽出宝贵时间。
这是一些代码:
//CONNECTS TO DATABASE
$link = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD);
if (!$link)
{
die('Could not connect: '. mysqli_error());
}
//SELECTS DATABASE
$db_selected = mysqli_select_db($link, DB_NAME);
if (!$db_selected)
{
die('Can\'t use' . DB_NAME . ': ' . mysqli_error());
}
//FILE NAME
$userNameSend = $_FILES ['user-file']['name'];
//INSERTS INTO DATABASE
$sql = "INSERT INTO images (USERIMAGENAME) VALUES ('$userNameSend')";
//CONNECTION CHECK
if (!mysqli_query($link, $sql))
{
die('Error: ' . mysqli_error());
}
else
{
header('Location: ./board.php');
}
}
mysqli_close($link);
最佳答案
插入后(如果成功)获取最后插入行的id:
$last_id = mysqli_insert_id($link);
获取上传文件的扩展名:
$ext = pathinfo($userNameSend, PATHINFO_EXTENSION);
然后将上传的文件重命名为($upload_dir
是您保存文件的目录的路径):
rename($upload_dir.$userNameSend, $upload_dir.$last_id.".".$ext);
关于php - 使用数据库中同一表中的另一列(ID 号)更改上传文件的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31958257/