通过数据库链接显示图像?(PHP/MYSQLI)新手
如果我在数据库中存储图像链接,然后在网站上显示它们,可以吗?这种做法不好吗?下面是示例代码通过数据库链接显示图像?(PHP/MYSQLI)新手,php,mysql,display,Php,Mysql,Display,如果我在数据库中存储图像链接,然后在网站上显示它们,可以吗?这种做法不好吗?下面是示例代码 <? echo "<img src='/projects".$row['image']."' >"; 根据评论的要求。 根据您的应用程序及其复杂性,您可能希望尽可能简化图像加载,而将图像url存储在数据库中并不是最佳方法。理想情况下,您希望按类型将图像分组到目录中,并保留图像名称的公共结构,这样您就可以轻松地交换图像,而只需替换thair id或单个字符串。下面是一个非常简化的图像
<?
echo "<img src='/projects".$row['image']."' >";
根据评论的要求。 根据您的应用程序及其复杂性,您可能希望尽可能简化图像加载,而将图像url存储在数据库中并不是最佳方法。理想情况下,您希望按类型将图像分组到目录中,并保留图像名称的公共结构,这样您就可以轻松地交换图像,而只需替换thair id或单个字符串。下面是一个非常简化的图像加载程序类的示例:
class ImageLoader {
const IMAGE_PATH = '/images'
const PROCUCT_IMAGE_PATH = '/products/'
const ICON_IMAGE_PATH = '/icons'
const IMAGE_EXTENSION = '.png'
static public function getIconImage($identifier) {
return self::IMAGE_PATH
. self::ICON_IMAGE_PATH
. $identifier
. self::IMAGE_EXTENSION;
}
static public function getProductImage($identifier) {
return self::IMAGE_PATH
. self::PROCUCT_IMAGE_PATH
. 'product-'
. $identifier
. self::IMAGE_EXTENSION;
}
}
目录结构:
images
-> products
-> product-123.png
-> icons
-> arrow.png
图像加载程序类:
class ImageLoader {
const IMAGE_PATH = '/images'
const PROCUCT_IMAGE_PATH = '/products/'
const ICON_IMAGE_PATH = '/icons'
const IMAGE_EXTENSION = '.png'
static public function getIconImage($identifier) {
return self::IMAGE_PATH
. self::ICON_IMAGE_PATH
. $identifier
. self::IMAGE_EXTENSION;
}
static public function getProductImage($identifier) {
return self::IMAGE_PATH
. self::PROCUCT_IMAGE_PATH
. 'product-'
. $identifier
. self::IMAGE_EXTENSION;
}
}
用法
手动传递图像名称:
<img src="<?= ImageLoader::getIconImage('arrow') ?>" />
“/>
将变量作为存储在DB中的id传递:
<img src="<?= ImageLoader::getProductImage($productIdFromDatabase) ?>" />
“/>
是。这行吗?不,这很好,但更好的方法是将图像保留在适当的位置,只在数据库中存储名称或ID:“
这很好-只要您确保保存的图像名称已清理/规范化。在某些方面,这实际上是一种很好的做法。但是,我强烈建议您使用绝对URL,并将整个URL存储在DB@NicholasSummers存储绝对路径使您无法使用多个环境,也无法将数据库从prod同步到dev例如,哇,这是一个惊人的代码,tnx的建议这应该会让事情变得更简单