从数据库 php 和 mysql 中检索图像的损坏的文件图标

Posted

技术标签:

【中文标题】从数据库 php 和 mysql 中检索图像的损坏的文件图标【英文标题】:broken file icon retrieving image from database php and mysql 【发布时间】:2015-07-01 14:48:56 【问题描述】:

我需要从数据库上传和检索图像,我可以将图像存储在数据库中,但以后无法显示。请帮忙 我编写了以下代码从数据库中检索。

  $result1=mysql_query("INSERT INTO userdata(id, username, firstname, lastname, imageType, image)VALUES('', '" . $_SESSION['username'] . "', '" . $_SESSION['firstname'] . "', '$lastname','$image_size['mime']','$imgData')") or die("Invalid query: " . mysql_error());
if($result1)

echo "</br>";
echo "Registration successful";
echo "</br>";
echo $lastid=mysql_insert_id();//get the id of the last record
echo "uploaded image is :"; ?>
<img src="imageView.php?image_id=<?php echo $lastid; ?>" /><br/>

<?php
echo "</br>";     
#if result1into db successful
else 

echo $result1;
echo "Problem in database operation";

imageView.php 代码如下:

    <?php
    $conn = mysql_connect("localhost", "root", "");
    mysql_select_db("wordgraphic") or die(mysql_error());
         if(isset($_GET['id'])) 
        $sql = "SELECT imageType,image FROM userdata WHERE id=". $_GET['image_id'];
        $result = mysql_query("$sql") or die("<b>Error:</b> Problem on Retrieving Image BLOB<br/>" . mysql_error());
        $row = mysql_fetch_array($result);
        header("Content-type: " . $row["imageType"]);
        echo $row["image"];
         
    mysql_close($conn);
?>

代码可能有什么问题? 当我尝试使用静态 ID 运行 imageView.php 时,图像正在显示。所以我猜错误在于传递变量是这个代码:

 echo "uploaded image is :"; ?>
<img src="imageView.php?image_id=<?php echo $lastid; ?>" /><br/>
<?php

可能有什么问题?

【问题讨论】:

为什么你使用 if(isset($_GET['id'])) 而你不使用你的 URI 传递它? 实际上, " /> 是拼写错误,但进行此更正也没有产生结果。 【参考方案1】:

只是一个小整改

<img src="imageView.php?image_id=<?php echo $lastid; ?>" />

而不是这个 src = src 保存图像文件的路径让我们说在图像文件夹中 $imagedata 将文件名存储在数据库中,以便您可以从图像文件夹中检索它

<img src="images/$imgData"  />

【讨论】:

但我将图像保存在数据库中而不是文件夹中,而不是 " /> 它实际上是 " /> lastid 是最后插入的图像的 id,我希望显示 dt 图像。 而不是将其保存在您的数据库中,最好将文件上传保存在一个文件夹中,然后将该文件名保存到您的数据库中,正如我在 src 中所说的那样,添加该文件夹并遵循通过您存储在数据库中的图像名称,这很容易,甚至可以通过简单地使用 unlink(folderpath/imagename) 删除该图像

以上是关于从数据库 php 和 mysql 中检索图像的损坏的文件图标的主要内容,如果未能解决你的问题,请参考以下文章

使用 PDO 问题从 MySQL 检索图像

如何使用 PHP 从 MySQL 数据库中存储和检索图像?

如何从 MySQL 数据库中存储和检索图像并使用 Php 将其显示在 html 中? [复制]

jquery - 如何使用通过 AJAX 从 MySQL 和 PHP 检索的数据将图像添加到 Select2 下拉列表?

如何使用 PHP 从 MYSQL 中插入和检索图像 blob?

将图像从磁盘导入 MySQL 数据库时图像损坏