在将其上传到数据库(PHP和Mysql)后无法显示图像 [英] Can't display image after uploading it to a data base, PHP and Mysql

查看:293
本文介绍了在将其上传到数据库(PHP和Mysql)后无法显示图像的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要为客户端创建一个网页,以将图像上传到数据库并显示。

I need to do a web page for a client to upload images to a data base and display them.

我实现将图片上传到数据库,但我无法显示它们,但我无法解决为什么

I am achieve to upload the images into a database, but I'm having trouble displaying them, but I can't work out why

这是我的代码:

<!DOCTYPE html>
    <head>
    <body>

    <form action="form.php" method="post" enctype="multipart/form-data">
        File:
        <input type="file" name="image" /> <input type="submit" value="Upload" />
    </form>

    <?php 
        mysql_connect("localhost", "root", "") or die(mysql_error());
        mysql_select_db("test" ) or die(mysql_error());

        $file = $_FILES['image'] ['tmp_name'];

        if (!isset($file)) {
            echo "<br>Please select an image.";
        }
        else {
            $image = addslashes(file_get_contents($_FILES['image'] ['tmp_name']));
            $imageName = addslashes($_FILES['image']['name']);
            $imageSize = getimagesize($_FILES['image']['tmp_name']);

            if ($imageSize == FALSE)
                echo "<br><br>Thats not an image. <br><br>";


            else{
                if (!$insert = mysql_query("INSERT INTO imgup VALUES ('','$imageName','$image')"))
                    echo "Problem uploading the image.";
                else{
                    $lastId = mysql_insert_id();
                    echo "Article uploaded.<p /> Your image:<p /> <img src=get.php?id=$lastId>";
                }
            }
        }

        ?>

    </body>
</html>

这是我的文件,将图像blob转换为图像:

This is my file who turn the image blob into an image:

<?php 
    mysql_connect("localhost", "root", "") or die(mysql_error());
    mysql_select_db("test" ) or die(mysql_error());

        $id = addslashes($_REQUEST['id']);


        $image = mysql_query("SELECT * FROM blog WHERE id=$id");
        $image = mysql_fetch_assoc($image);
        $image = $image['image'];

        header("Content-type: image/jpeg");

        echo $image;

?>

最后图片不显示,这是我得到的: http://goo.gl/gi1Uuc

And at the end the image does not display and this is what i get: http://goo.gl/gi1Uuc

如果我去查看我的数据库,映像已成功上传...

And if i go and check my database, the image has ben successfully uploaded...

推荐答案

根据文件使用内联base64编码。这是通过:

Depending on the file use inline base64 encoding. This is done with:

echo '<img src="data:image/jpeg;base64,'.base64_encode( $image ).'"/>';

Font: base64_encode

放置 T upperCase(Type),因为可能在IE中给出错误。尝试使用函数file_get_contents打印。

Put the T upperCase (Type), because can giving error in IE. Try printing with the function file_get_contents.

header('Content-Type: image/jpeg');
echo readfile($image);

这篇关于在将其上传到数据库(PHP和Mysql)后无法显示图像的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆