如何使用php表单从我的数据库/表中正确显示图像?

时间:2017-04-28 12:42:15

标签: php

以下是我创建的以下脚本。首先是允许选择要显示的图像的表单。第二是显示页面。我的问题是如何使用php中的数据库/表格从我的表单中显示图像?我只想显示使用选择文件格式选择的单个图像。

<!DOCTYPE html>
<html>
<body>

 <form action="display.php" method="post" enctype="multipart/form-data">
    Select image to display:
    <input type="file" name="fileToDisplay" id="fileToDisplay">
    <input type="submit" value="Display Image" name="submit">
</form>
    </body>
</html>

这是第二个脚本

<?php

    $db = mysqli_connect("localhost","root", "", "myDB");

    $sql = "SELECT * FROM images";

    $result = mysqli_query($db, $sql);
    while ($row = mysqli_fetch_array($result)){
        echo "<img src=' images/". $row['image']."' >";
        echo "<p>". $row['text']."</p>";
        echo "</div>";
    }

enter image description here

1 个答案:

答案 0 :(得分:0)

最简单的方法是将图像上传到服务器并将图像名称保存在数据库中。

将图像上传到服务器并保存到数据库

// display.php
$tmp_file = $_FILES['fileToDisplay']['tmp_name']; // get the temp name of the image
$name = $_FILES['fileToDisplay']['name']; // get the name of the image

现在您需要使用move_uploaded_file()将文件移动到服务器上的目录中,并将文件名保存在数据库中。

move_uploaded_file($tmp_file, 'images/' . $name)
$remove_extension = explode('.', $name);
$sql = "INSERT INTO `images`(`image`, `text`) VALUES ('$name', '$remove_extension[0]')";

完整代码

// display.php
$tmp_file = $_FILES['fileToDisplay']['tmp_name'];
$name = $_FILES['fileToDisplay']['name'];

if (move_uploaded_file($tmp_file, 'images/' . $name)) {
    $remove_extension = explode('.', $name);
    $sql = "INSERT INTO `images`(`image`, `text`) VALUES ('$name', '$remove_extension[0]')";
   if (mysqli_query($db, $sql)) {
       $last_id = $db->insert_id;
       $sql = "SELECT * FROM images WHERE id = $last_id";

       $result = mysqli_query($db, $sql);
       while ($row = mysqli_fetch_array($result)){
           echo "<div><img src=' images/". $row['image']."' >";
           echo "<p>". $row['text']."</p>";
           echo "</div>";
       }
   }
}

Handling file uploads