【问题标题】:Fetch blob image displays broken image获取 blob 图像显示损坏的图像
【发布时间】:2018-05-05 20:06:38
【问题描述】:

我以两种方式将图像从界面表单保存到MYSQL,一种方式我将图像编码为 Base64,第二种方式我按原样保存图像,但是当我获取图像时我得到损坏的图像。

使用 base64 的第一种方式:

    ...
     if (isset($_POST['photo'])) {  
 $photo =  $_POST['photo'];
 $photoValue = base64_decode($photo);
$sql = "INSERT INTO students (photo) VALUES ('$photoValue')
....

当我将它显示为回显时,我得到了结果:

imagesjpon :echo base64_encode( $result['photo']); 和损坏的图像:cho '<img src="data:photo/jpeg;base64,'.base64_encode( $result['photo'] ).'"/><br/>';

当我保存图像而不将其编码为 base64 时的第二种方式:

     ...
        if (isset($_POST['photo'])) {   
    $photo =  $_POST['photo'];
    $sql = "INSERT INTO students (photo) VALUES ('$photo ')
     ....

当我将其显示为回显时,我在界面上得到的结果:

aW1hZ2VzLmpwZw== 带有 :echo base64_encode( $result['photo']); 损坏的图像:cho '<img src="data:photo/jpeg;base64,'.base64_encode( $result['photo'] ).'"/><br/>';

但是,当我手动将图像上传到 mysql 时,当我获取此图像时出现了很好的问题,但问题非常大且使用速度很慢,当它是一张图像时,我得到的结果可以填满整个页面。 echo base64_encode( $result['photo']); 上的结果 IS: /9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL ...

【问题讨论】:

  • 你为什么不投我一票?
  • 警告:您的代码容易受到 SQL 注入的影响。不要将数据与您的 SQL 连接,使用参数化查询。
  • 另外,除非您知道您的文件将一直非常小,否则我强烈建议您将图片保存为文件,而不是保存在数据库中。这样,您甚至可以像提供任何常规文件一样为它们提供服务。
  • @jcaron 理解,但要将其保存为文件会在 mysql 中产生大尺寸,还有另一种方法可以将其保存为火,但尺寸会减小?
  • 重点是:如果您将其保存为文件,它不会进入您的 MySQL 数据库。

标签: php html mysql image blob


【解决方案1】:

试试 $_FILES 变量 $_FILES['IMAGE NAME']

【讨论】:

  • 是的,让我试试看
  • 当我使用你的技术时,我终于在 mysql 中一无所获
猜你喜欢
  • 2013-08-04
  • 2015-11-20
  • 2010-12-14
  • 2013-09-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-07
  • 2019-02-13
相关资源
最近更新 更多