php - 使用数据库中同一表中的另一列(ID 号)更改上传文件的名称

标签 php mysql database filenames

我在数据库中有一个图像表,其中包含 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/

相关文章:

mysql - 使用 RMySQL 连接到远程数据库 - 访问被拒绝

c# - 是否可以从故障点继续运行代码?

javascript - 使用 XMLHttpRequest 将代码片段提交到数据库

php - mPDF:隐藏表格行(CSS 显示:无)不起作用

php - 刷新 token AWS Cognito 用户池

mysql - Laravel 向 mysql 插入一个 bigint 错误

mysql - 如何在数据库表中指定客户的默认送货地址?

php - 如何通过结束 session 从站点注销

php - 使用 PHP 处理 Soap 响应

mysql - Symfony3-学说 : Order by Case When