php - 不显示 Blob 图像

标签 php mysql blob

我在显示作为 blob 存储在数据库中的图像时遇到问题。我在许多论坛中搜索,但找不到任何答案。

我将代码分成两个文件。在 index.php 中,我插入图像并尝试从 get_image.php 文件加载它。

这里是index.php

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

                <?php 
                  $file = $_FILES['image']['tmp_name'];

                  if(!isset($file)){
                    echo "Please select an image.";
                  }

                  else{
                    $image_name = mysql_real_escape_string($_FILES['image']['name']);
                    $image = mysql_real_escape_string(file_get_contents($_FILES['image']['tmp_name']));
                    $imageType = mysql_real_escape_string($_FILES['image']['type']);
                    $image_size = getimagesize($_FILES['image']['tmp_name']);


                    if($image_size == FALSE){
                      echo "That's not an image";
                    }
                    else{
                      if (!$insert = mysql_query("UPDATE 'table_name' SET `image` = '$image' WHERE 'row_name' = '$student_id'")){                                                        
                        echo "Problem updating image";
                      }

                      else{                                                      
                        echo "<img src=get_image.php>";
                      }

                    }
                  }
                ?>

和get_image.php

<?php 

        $query = mysql_query("SELECT image FROM table_name WHERE student_id = 51686");
        while($row= mysql_fetch_assoc($query)){
            $imageData = $row['image'];
        }

        header("Content-type: image/png");
        echo $imageData;        
?>

谁能帮忙。我的 php 版本是 5.2 在输出中有图像图标,但没有图像。如果我右键单击并尝试将其另存为图像,它不是图像格式,而是另存为 get_image.php。所以我不知道是什么问题。

最佳答案

请尝试在下面插入这样的记录

 $tmpImageName=$_FILES['files']['tmp_name'];
 $handle      = fopen( $tmpImageName, 'r' );
 $content = fread( $handle, filesize( $tmpImageName ) );
 fclose($handle);

 $sql='insert into imagetest(image)values("'.mysql_escape_string($content).'")';

 mysql_query($sql) or die(mysql_error());

然后尝试像这里一样显示图像

$res = mysql_query("SELECT * FROM imagetest"); 
 while ($row = mysql_fetch_assoc($res)) {
   echo "<img src=data:image/jpeg;base64," . (base64_encode(($row['image']))) . " >";
  }

关于php - 不显示 Blob 图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23125474/

相关文章:

php - 如何从 PHP 显示 JavaScript 警报?

php - 如何从给定的 Facebook URL 获取视频 ID?

mysql - BCP SQL 导出到 CSV

javascript - 为什么 tinymce 没有出现在动态添加的文本区域

mysql - 可以指示 MySQL/Postgres 忽略索引或列吗?

javascript - 从服务器获取文件时 JavaScript Blob 编码错误

Vue.js Axios responseType blob 或 json 对象

php - 配置在 Symfony Cache 中使用哪个 Redis 适配器

javascript - 从 Google Drive 获取文件并转换为 Blob

php - 传递 API 数据以查看 Laravel