首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在数据库/cms中存储带有alt标签的图像的想法?PHP/MySQL

在数据库/cms中存储带有alt标签的图像的想法?PHP/MySQL
EN

Stack Overflow用户
提问于 2012-11-12 18:01:08
回答 3查看 1.8K关注 0票数 1

我正在建立一个简单的CMS,并有登录,编辑页面等。

那些已经建立了自己的CMS的人,你们如何存储用户上传的带有alt标签的图像?

数据库中的文件名/路径和alt标签也在那里吗?

然后在写出图像时获取id,并创建一个充当图像的php页面?

例如:<?php include image.php?id=1; ?>

image.php输出:

代码语言:javascript
复制
get id
connect to db
echo '<img src="nameofimageandextension" alt="alttag">';

或者这不是一个好主意?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-11-12 18:18:17

创建这样的表(或用户表的扩展)的问题在哪里?

代码语言:javascript
复制
+----+----------------+------------------+
| id | name           | alt_tag          |
+----+----------------+------------------+
|  1 | myimage.png    | My image         |
|  2 | otherimage.jpg | Some other image |
+----+----------------+------------------+

并像这样访问它:

代码语言:javascript
复制
$query = "SELECT name, alt_tag FROM images WHERE id = ?";
$params = array( 1 );

$path = "http://mysite.com/path/to/image/";

$stmt = $db->prepare( $query );
$stmt->execute( $params );
$row = $stmt->fetchAll( PDO::FETCH_ASSOC );

echo '<img src="{$path.$row[name]}" alt="{$row[alt_tag]}" title="{$row[alt_tag]}" />';

我相信这是最干净和最简单的(最好的?)做得很好。

回答第二个问题:

这取决于你想如何保护你的图片,但通常情况下,no,最好是显示真实的图片链接。除非是验证码或其他one time use only图像,否则您不希望用户看到所有图像都是myimage.php?id=1样式的。

使用PHP作为图片会弄乱一些浏览器缓存,所以这意味着用户每次使用它时都必须加载整个网站的url。

对用户或您的服务器流量不是很愉快。

票数 2
EN

Stack Overflow用户

发布于 2012-11-12 18:07:03

存储名称和alt文本似乎是最好的解决方案。然后可以将路径配置为静态的,即/user/upload或类似的内容。

当需要时,图像将必须通过php路由,以确保显示alt文本。

代码语言:javascript
复制
  <img src="<?php echo $imagePath . $imageNameFromDB; ?>" alt="<?php echo $imageAltFromDB; ?>"/>
票数 3
EN

Stack Overflow用户

发布于 2012-11-12 18:22:50

路径是我在数据库中存储的内容,如-- resources/myimage.png。但要使其正常工作,您必须将其作为-- resources插入到数据库mysql中。myimage.png我是这样做的->

$upload_path = 'resources/';//上传文件的位置(当前为' files‘目录)。$filename =$_FILES‘’userfile‘;//获取文件名(包括文件扩展名)。$ext = substr($filename,strpos($filename,‘.),strlen($filename)-1);//从文件名中获取扩展名$avatar = $upload_path。$filename;//这是钥匙。Asighn是两个变量的一个变量,以及它们之间的dot= /(正斜杠)。然后对其进行清理和检查,然后在插入时使用如下查询: so-- mysql_query('update users set avatar=“'.$avatar.‘where id= and thats it。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13341626

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档