我想知道是否还有其他方法,而不是我想从数据库中检索图像的方式。当我使用这段代码时,我得到一个破碎的图像图标就是这样!它的工作方式是我将图像的位置路径存储在数据库中,如下所示:
$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
答案 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重写以隐藏您正在使用数据库的事实。