【问题标题】:images downloading instead of being displayed图像下载而不是显示
【发布时间】:2012-04-15 01:12:59
【问题描述】:

我在 mySQL 服务器上将图像存储为 mediumblob。当我尝试使用以下代码显示它们时,某些浏览器(例如 safari 和 EI)会下载图像而不是显示它们。有没有一种独立于浏览器的显示方式?

$query = "SELECT image FROM images WHERE id=?";
$stmt = $dbc->prepare($query);
$stmt->bind_param("i",$id);
$stmt->execute();
$stmt->store_result();
$stmt->bind_result($image);
$stmt->fetch();
header("Content-Type: image/jpg");
echo $image;

提前致谢

【问题讨论】:

标签: php mysql image


【解决方案1】:

尝试Content-Type: image/jpeg 而不是Content-Type: image/jpg

image/jpeg 是 jpeg 图像的正确 MIME 类型。

【讨论】:

    【解决方案2】:

    尝试像这样发送带有 inline 值的 Content-Disposition 标头。

    $query = "SELECT image FROM images WHERE id=?";
    $stmt = $dbc->prepare($query);
    $stmt->bind_param("i",$id);
    $stmt->execute();
    $stmt->store_result();
    $stmt->bind_result($image);
    $stmt->fetch();
    header("Content-Type: text/html");
    header("Content-Disposition: inline");
    echo $image;
    

    【讨论】:

      【解决方案3】:

      试试这个

      $query = "SELECT image FROM images WHERE id=?";
      $stmt = $dbc->prepare($query);
      $stmt->bind_param("i",$id);
      $stmt->execute();
      $stmt->store_result();
      $stmt->bind_result($image);
      $stmt->fetch();
      header("Content-Type: text/html");
      echo $image;
      

      $query = "SELECT image FROM images WHERE id=?";
      $stmt = $dbc->prepare($query);
      $stmt->bind_param("i",$id);
      $stmt->execute();
      $stmt->store_result();
      $stmt->bind_result($image);
      $stmt->fetch();
      header("Content-Type: image/jpg");
      echo "<p>".$image."</p>";
      

      另外请注意,如果没有 HTML 内容,某些浏览器会下载图像。你试过其他浏览器吗?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-06-12
        • 2011-03-01
        • 1970-01-01
        • 2014-02-27
        相关资源
        最近更新 更多