需要在数据库中更改其id的文件路径

时间:2017-05-30 07:13:27

标签: php mysql

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

目录image.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 个答案:

答案 0 :(得分:0)

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