php-如何在数据库中插入图像并使用php显示

时间:2017-03-08 08:34:59

标签: php

我目前正在处理我的项目,我很难显示数据库中的图片。当我检查它时,图像的名称存储在phpmyadmin上,但它没有显示在我的桌子上。这是我的代码

将图像存储在数据库中    storing the image in the database

在桌子上显示图像 displaying the image on the table

1 个答案:

答案 0 :(得分:-1)

你可以尝试一下。 File Image.php

<?php


    // verify request id.
    if (empty($_GET['id']) || !is_numeric($_GET['id'])) {
        echo 'A valid image file id is required to display the image file.';
        exit;
    }

    $imageId = $_GET['id'];

    //connect to mysql database
    if ($conn = mysqli_connect('localhost', 'root', 'root', 'test')) {
        $content = mysqli_real_escape_string($conn, $content);
        $sql = "SELECT type, content FROM images where id = {$imageId}";

        if ($rs = mysqli_query($conn, $sql)) {
            $imageData = mysqli_fetch_array($rs, MYSQLI_ASSOC);
            mysqli_free_result($rs);
        } else {
            echo "Error: Could not get data from mysql database. Please try again.";
        }
        //close mysqli connection
        mysqli_close($conn);

    } else {
        echo "Error: Could not connect to mysql database. Please try again.";
    }   

    if (!empty($imageData)) {
        // show the image.
        header("Content-type: {$imageData['type']}");
        echo $imageData['content'];
    }
?>

文件:Upload.php

<?php
/**
 * Upload an image to mysql database.
 */

// Check for post data.
if ($_POST && !empty($_FILES)) {
    $formOk = true;

    //Assign Variables
    $path = $_FILES['image']['tmp_name'];
    $name = $_FILES['image']['name'];
    $size = $_FILES['image']['size'];
    $type = $_FILES['image']['type'];

    if ($_FILES['image']['error'] || !is_uploaded_file($path)) {
        $formOk = false;
        echo "Error: Error in uploading file. Please try again.";
    }

    //check file extension
    if ($formOk && !in_array($type, array('image/png', 'image/x-png', 'image/jpeg', 'image/pjpeg', 'image/gif'))) {
        $formOk = false;
        echo "Error: Unsupported file extension. Supported extensions are JPG / PNG.";
    }
    // check for file size.
    if ($formOk && filesize($path) > 500000) {
        $formOk = false;
        echo "Error: File size must be less than 500 KB.";
    }

    if ($formOk) {
        // read file contents
        $content = file_get_contents($path);

        //connect to mysql database
        if ($conn = mysqli_connect('localhost', 'root', 'root', 'test')) {
            $content = mysqli_real_escape_string($conn, $content);
            $sql = "insert into images (name, size, type, content) values ('{$name}', '{$size}', '{$type}', '{$content}')";

            if (mysqli_query($conn, $sql)) {
                $uploadOk = true;
                $imageId = mysqli_insert_id($conn);
            } else {
                echo "Error: Could not save the data to mysql database. Please try again.";
            }

            mysqli_close($conn);
        } else {
            echo "Error: Could not connect to mysql database. Please try again.";
        }
    }
}
?>

<html>
    <head>
        <title>Upload image to mysql database.</title>
        <style type="text/css">
            img{
                margin: .2em;
                border: 1px solid #555;
                padding: .2em;
                vertical-align: top;
            }
        </style>
    </head>
    <body>
        <?php if (!empty($uploadOk)): ?>
            <div>
                <h3>Image Uploaded:</h3>
            </div>
            <div>
                <img src="image.php?id=<?=$imageId ?>" width="150px">
                <strong>Embed</strong>: <input size="25" value='<img src="image.php?id=<?=$imageId ?>">'>
            </div>

            <hr>
        <? endif; ?>

        <form action="<?=$_SERVER['PHP_SELF']?>" method="post" enctype="multipart/form-data" >
          <div>
            <h3>Image Upload:</h3>
          </div>
          <div>
            <label>Image</label>
            <input type="hidden" name="MAX_FILE_SIZE" value="500000">
            <input type="file" name="image" />
            <input name="submit" type="submit" value="Upload">
          </div>
        </form>
    </body>
</html>

替换行

mysqli_connect('localhost','root','root','test')

mysqli_connect('您的主机','您的用户名','您的密码','您的数据库名称')

在文件中再次保存。

你已经完成了。