【问题标题】:Displaying images from a mysql database显示来自 mysql 数据库的图像
【发布时间】:2012-11-26 23:09:32
【问题描述】:

我对 php 比较陌生。从 mysql 数据库检索 blob 数据后,我在浏览器(谷歌浏览器)中显示图像时遇到问题。

基本上,当在底部的 echo 前面添加斜杠时,以下代码会起作用。但是,我遵循了其他在线教程,并且导师能够在不使用斜线的情况下显示他们的图像,而我无法获得图像。我只是想知道标准规则是什么?要添加的另一件事 - 当我确实无法在浏览器中获取图像时,我会得到一个 ting 缩略图。如果有人能告诉我如何可靠地显示图像,我将不胜感激。我希望创建的网站只是关于图像。所以它是一种基本的。非常感谢您抽出宝贵时间。

<?php
$conn = mysql_connect ("localhost","root","arctic123");
$db = mysql_select_db ("user_images", $conn);

if(!$db) {
    echo mysql_error();
}

$q = "SELECT * FROM images";
$r = mysql_query ("$q",$conn);
if($r) {
    while($row = mysql_fetch_array($r)) {
        //echo $row ['username'];
        //echo "<br>";
        header ("Content-type: image/jpeg");
        echo $row ['logo'];
        //echo "<br>";
    }
}else{
    echo mysql_error();
}
?>

【问题讨论】:

标签: php mysql image


【解决方案1】:

您的代码中的任何输出后都不能有headerhttp://php.net/manual/en/function.header.php

最佳做法是将图像上传到目录,并将图像的路径/文件名存储在数据库中。还可以更轻松地操作图像,例如使用 PHP 创建不同大小和缩略图。而且它占用的磁盘空间少了大约四倍...

【讨论】:

  • 图片可以在目录中排序吗?我原以为这是不可能的。我不是说手动。但是这样函数就可以自动完成。
  • 如果我理解正确,您不需要对图像进行排序。您可以按参考资料或数据库中的任何其他字段进行排序。
【解决方案2】:

希望您不要将图像存储在 MySQL 上,如果您这样做了,请停止这种有害行为,因为它会使您的数据库不必要地繁重...

【讨论】:

  • 这是一个笼统的声明,要小心。我已经将 blob 存储在一个用户群超过 1000 万和 250 000 多个并发连接的数据库中,并且没有任何问题。这取决于您的物理架构,即磁盘布局等。
【解决方案3】:

我建议不要将图像存储在数据库中。虽然在技术上是可行的,但它存在严重的性能问题。最佳做法是为图像指定一个文件夹,然后直接访问它们。如果您想要 MySQL 的过滤和排序功能,请将当前存储图像数据的 BLOB 列替换为包含文件名的 VARCHAR。

<?php
$conn = mysql_connect ("localhost","root","arctic123");
$db = mysql_select_db ("user_images", $conn);
$imgdir = "/path/to/image/directory/";

if(!$db) {
    echo mysql_error();
}

$q = "SELECT * FROM images";
$r = mysql_query ("$q",$conn);
if($r) {
    while($row = mysql_fetch_array($r)) {
        echo $row['username'];
        echo "<br>";
        echo "<img src='" . $imgdir . $row['logo'] . "' />";
        echo "<br>";
    }
}else{
    echo mysql_error();
}
?>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-05-19
    • 2013-05-19
    • 1970-01-01
    • 2018-04-02
    • 1970-01-01
    • 2012-01-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多