使用数据库存储路径显示图片的另一种方法是什么?

时间:2011-10-16 20:39:41

标签: php sql

我想知道是否还有其他方法,而不是我想从数据库中检索图像的方式。当我使用这段代码时,我得到一个破碎的图像图标就是这样!它的工作方式是我将图像的位置路径存储在数据库中,如下所示:

$target=$_SERVER['DOCUMENT_ROOT'] . "/images/" . basename( $_FILES['file']['name']);

然后通过php lke检索它:

echo '<img src="'. $_SESSION['pic_location'] .'"/>';

现在,在我的数据库中,它为例如

提供了类似的位置路径
C:/xampp/htdocs/images/beetgejo.jpg

当存储整个路径时,我认为它不会起作用?可以像这样存储:

../images/beetgejo.jpg

3 个答案:

答案 0 :(得分:0)

是的,可以使用

../images/beetgejo.jpg 

它被称为相对路径,它相对于你当前的位置,一个i sugest使用它作为它更灵活。 从数据库返回的路径是错误的,尝试保存相对

for ex:通过定义相对路径,仅将文件名保存到数据库,image.jpg并稍后将其包含在图像标记中。

<img src="/images/file_name_from_db.jpg" />

答案 1 :(得分:0)

它被称为相对路径。您只需使用$ _SERVER变量将数据的完整URL存储在数据库中即可。

'http://'.$_SERVER["SERVER_NAME"].'/images/'.basename( $_FILES['file']['name']);

现在,您可以使用以下函数从当前URL获取相对URL: Getting Relative Path From Absolute Path

答案 2 :(得分:0)

您将路径存储在数据库中。这是可以的,但是你有可能使这些数据变得陈旧 - 要移动文件,但数据库从未通知,结果是你的数据库数据不准确。因为听起来你不只是简单地存储URL路径......

就个人而言,如果可能的话,我更愿意将图像数据存储在数据库中。 Here是我对此做法的优先参考。它不会形成一个完整的图片,但它是一个很好的起点,你可以从那里分支出来。你可以使用一个简单的php文件来充当图像检索器(浏览器在尝试访问php文件以检索图像时没有问题,只要返回消息上的标题设置正确),或者你甚至可以使用URL重写以隐藏您正在使用数据库的事实。