php - 需要更改文件路径及其在数据库中的 ID

标签 php mysql

嗨,我有一个代码正在上传文件并将其路径保存在数据库中。现在我想将其路径更改为保存在数据库中的相应ID,即我已经上传了一个图像,其ID在数据库中为“4”,其文件路径也应该为4。如果我上传其他图像并且如果它的 id 是 5,那么在它的文件路径列中也应该有 5,依此类推。我搜索了一段时间但找不到正确的答案。请在这里帮助我。 这是我的代码

目录图像.php

    <!doctype html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>image in directory</title>
    </head>

    <body>
    <form method="post" action="directory-imagedatabase.php" enctype="multipart/form-data">

    <label>Choose File to Upload:</label><br />

    <input type="hidden" name="id" />

    <input type="file" name="uploadimage" /><br />

    <input type="submit" value="upload" id="upload" />

    </form>
    </body> 
    </html>

directory-imagedatabase.php

    <?php
    $target_Folder = 'images/';

    $uid = $_POST['id'];


    $target_Path = $target_Folder.basename( $_FILES['uploadimage']['name'] );

    $savepath = $target_Path.basename( $_FILES['uploadimage']['name'] );

        $file_name = $_FILES['uploadimage']['name'];

        if(file_exists('officework/php-startup/images/'.$file_name))
    {
        echo "That File Already Exisit";
        }
        else
        {

            // Database
        $con=mysqli_connect("localhost","root","sal123","test"); //Change it if required

    //Check Connection
            if(mysqli_connect_errno())
            {
                echo "Failed to connect to database" .     mysqli_connect_errno();
            }
    $sql = "INSERT INTO directoryimage (id,image, image_name) 
    VALUES ('','$target_Folder$file_name','$file_name') ";         
            if (!mysqli_query($con,$sql))
            {
                die('Error: ' . mysqli_error($con));
            }
            echo "1 record added successfully in the database";
            echo '<br />';
            mysqli_close($con);

            // Move the file into UPLOAD folder

            move_uploaded_file( $_FILES['uploadimage']['tmp_name'],     $target_Path );

            echo "File Uploaded <br />";
            echo 'File Successfully Uploaded to:&nbsp;' . $target_Path;
            echo '<br />';
            echo 'File Name:&nbsp;' . $_FILES['uploadimage']['name'];
            echo'<br />';
            echo 'File Type:&nbsp;' . $_FILES['uploadimage']['type'];
            echo'<br />';
            echo 'File Size:&nbsp;' . $_FILES['uploadimage']['size'];

        }
        }
        ?>

最佳答案

  1. 获取记录的插入 ID $id = mysqli_insert_id($con) INSERT之后
  2. 获取文件扩展名:$ext = preg_replace("/\.(gif|jpg|etc)$/", ".$1", $file_name);
  3. 将文件重命名为 rename() rename("$target_Folder$file_name", $id . $ext);
  4. 使用类似 $sql = "UPDATE directoryimage SET image = CONCAT('{$target_Folder}', id, '{$ext}') WHERE id = $id"; 的内容更新记录

关于php - 需要更改文件路径及其在数据库中的 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44255813/

相关文章:

php - 照明\数据库\QueryException SQLSTATE[42S22] : Column not found: 1054 Unknown column

java - apache httpd 和 tomcat : call tomcat features?

mysql - MySQL 中的 Asterisk IVR 记录选择

Mysql设置SYSTEM时区

phpunit mock - 方法不存在

php - 将 Mysql 查询转换为 Laravel 4 Eloquent

php - Magento - 具有 1000 种颜色选项的可配置产品会减慢产品详细信息页面的加载时间

MySQL Timediff 计算晚上 10 点到早上 6 点之间的小时数

java - 更新查询的动态列名

php - 将数据从一列移动到表