考虑到我的图像的链接存储在 MySQL 数据库中,如何通过 php 显示存储在文件夹中的图像

Posted

技术标签:

【中文标题】考虑到我的图像的链接存储在 MySQL 数据库中,如何通过 php 显示存储在文件夹中的图像【英文标题】:How to display through php an image stored in a folder considering that my image's link is stored in MySQL database 【发布时间】:2013-02-09 23:13:50 【问题描述】:

作为一种好的做法,我只将图像的链接存储在我的数据库中,问题是:

我应该如何存储我的图片链接? (假设它在 c 上:)

c://image.jpg?

我应该使用哪种 php 代码来显示该图像? 我只显示路径,我该怎么做才能显示图像?

我可以用这个吗:

$query = "SELECT ImageURL from WhateverTable";

$result = mysql_query($query) or die(mysql_error());

$Image = mysql_fetch_row($result);

echo "<img src='$Image[0]' alt='This is an image'>";

谢谢大家

【问题讨论】:

&lt;img src="/path/in/server's/url/space/that/points/to/that/file" /&gt;. 图片应该在浏览器可见的地方。然后使用上面的img标签。 感谢马克和亚历克斯! 【参考方案1】:

你只想存储相对路径,而不是绝对路径,作为链接到类似的东西

 <img src="/var/www/vhosts/website.com/images/file.jpg"> 

会在任何真实网站上返回 404。通过相对路径 (/images/file.jpg) 将文件存储在数据库中,如果它们都在同一个目录中,则仅使用文件名。

或者,您可以学习 MongoDB,它允许您将文件实际存储在数据库本身中。

【讨论】:

这正是对我有用的方法,将 存储在“image”中。看到那个图像伙伴真是太棒了!非常感谢您的帮助 skrilled【参考方案2】:
    我强烈建议您改用 PDO。 使用图片文件夹的相对 URL,以备有一天需要移动它们。

这是一个例子。

// relative to your public webroot
$publicImageUrl = '/images/in/here';

// Pull up some record, maybe of a product 
$select = 'SELECT imageFilename FROM products WHERE id = 2332';
$results = mysql_query($select);
if(!$results) 
    // issue with query. deal with it here
 else 
    if( mysql_num_rows($result) ) 
        // record not found. deal with it here
    

    $row = mysql_fetch_array($result);

    $imageSrc = $publicImageUrl  . '/' . $row['imageFilename'];

然后你的 html 将如下所示

<img src="<?php echo $imageSrc; ?>" />

【讨论】:

感谢亚当,这种方法似乎是一个很好的实践伙伴,我会尝试应用它,我首先尝试了解所有内容。我会查看其他 PDO 示例...非常感谢!【参考方案3】:

    使用PDO 进行php mysql 连接

    发布 mysql 查询输出

【讨论】:

以上是关于考虑到我的图像的链接存储在 MySQL 数据库中,如何通过 php 显示存储在文件夹中的图像的主要内容,如果未能解决你的问题,请参考以下文章

可以将下载的图像/文件添加到我的应用程序包中吗?

使用 C++ Boost 或 STL 和 Mysql 存储和检索图像

PHP:在存储到 MySQL 数据库之前剥离链接(正则表达式剥离?)[重复]

jQuery uploadify 将图像存储在 mysql 中

损坏的图像链接的图像占位符?

Firebase 存储 - 将图像上传到 Firebase 存储并在实时数据库中创建指向该图像的链接