首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法显示图片php

问无法显示图片php
EN

Stack Overflow用户
提问于 2016-05-19 08:14:37
回答 2查看 109关注 0票数 0

这是我的.php文件

代码语言:javascript
复制
<?php
        ini_set('mysql.connect_timeout',300);
        ini_set('default_socket_timeout',300);
    ?>
    <html>
        <body>
            <form method="post" enctype="multipart/form-data">
            <br/>
                <input type="file" name="image" />
                <br/><br/>
                <input type="submit" name="sumit" value="Upload" />
            </form>
            <?php
                if(isset($_POST['sumit']))
                {
                    if(getimagesize($_FILES['image']['tmp_name']) == FALSE)
                    {
                        echo "Please select an image.";
                    }
                    else
                    {
                        $image= addslashes($_FILES['image']['tmp_name']);

                        $image= file_get_contents($image);
                        $image= base64_encode($image);
                        saveimage($image);
                    }
                }
                displayimage();
                function saveimage($image)
                {
                    $con=mysql_connect("localhost","root","");
                    mysql_select_db("food",$con);
                    $qry="insert into info (image) values ('$image')";
                    $result=mysql_query($qry,$con);
                    if($result)
                    {
                        echo "<br/>Image uploaded.";
                    }
                    else
                    {
                        echo "<br/>Image not uploaded.";
                    }
                }

                function displayimage()
                {
                    $con=mysql_connect("localhost","root","");
                    mysql_select_db("food",$con);
                    $qry="select image from info";
                    $result=mysql_query($qry,$con);
                    while($row = mysql_fetch_assoc($result))
                    {
                        echo '<img height="300" width="300" src="data:image;base64,'.$row[2].' "> ';
                    }
                    mysql_close($con);   
                }
            ?>
        </body>
    </html>

为什么我不能显示我的图片当我添加它。当我点击上传时,图片已经存储在数据库中了,但是我不能显示它。那里的显示代码有什么问题吗?谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-05-19 08:32:13

看这条线,

代码语言:javascript
复制
while($row = mysql_fetch_assoc($result)){ ...

您将行作为关联数组(而不是数字数组)获取,因此$row[2]将无法工作。在您的$row['image']元素中使用<img>来显示图像。

所以你的代码应该是这样的:

代码语言:javascript
复制
while($row = mysql_fetch_assoc($result)){
    echo '<img height="300" width="300" src="data:image;base64,'. $row['image'] . '">';
}

Sidenotes:

  1. 不要使用mysql_*函数,它们在PHP5.5中被废弃,在PHP7.0中被完全删除。使用mysqli或pdo代替。函数。
  2. 了解准备好的陈述,因为现在您的查询容易受到SQL注入的影响。也见如何防止PHP中的SQL注入。
票数 0
EN

Stack Overflow用户

发布于 2016-05-19 08:31:00

在当前代码中,此处更改

将$row[2]替换为$row['image']

并尝试按照注释的建议转换代码。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37317544

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档