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

时间:2012-11-12 10:01:08

标签: php mysql

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

那些已经构建了自己的CMS的人,如何使用alt标签存储用户上传的图像?

数据库中的文件名/路径和alt标签呢?

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

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

image.php输出:

get id
connect to db
echo '<img src="nameofimageandextension" alt="alttag">';

或者这不是一个好主意?

3 个答案:

答案 0 :(得分:3)

存储名称和替代文字似乎是最佳解决方案。然后可以将路径配置为静态,即/user/upload或类似的东西。

然后必须通过php路由所需的图像以确保显示替代文字。

  <img src="<?php echo $imagePath . $imageNameFromDB; ?>" alt="<?php echo $imageAltFromDB; ?>"/>

答案 1 :(得分:2)

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

+----+----------------+------------------+
| id | name           | alt_tag          |
+----+----------------+------------------+
|  1 | myimage.png    | My image         |
|  2 | otherimage.jpg | Some other image |
+----+----------------+------------------+

然后像这样访问:

$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]}" />';

我相信这是最干净,最简单的(最好的?)方式。

回答第二个问题:

取决于您希望如何保护图像,但通常,最好显示真实图像链接。您不希望用户将所有图像都显示为myimage.php?id=1样式,除非这些图像是验证码或其他one time use only图像。
使用PHP作为图像URL会混淆一些浏览器缓存,因此这意味着用户每次都需要加载整个网站

对用户或您的服务器流量不满意。

答案 2 :(得分:0)

路径是我在数据库中存储的 - resources / myimage.png。但要使它工作,你必须将它插入数据库mysql as-- resources。 myimage.png我是这样做的---&gt;

$ upload_path =&#39; resources /&#39 ;; //文件上传的位置(目前是&#39;文件&#39;目录)。    $ filename = $ _FILES [&#39; userfile&#39;] [&#39; name&#39;]; //获取文件名(包括文件扩展名)。    $ ext = substr($ filename,strpos($ filename,&#39;。&#39;),strlen($ filename)-1); //从文件名中获取扩展名。    $ avatar = $ upload_path。 $文件名; //这里是关键。为两者加上一个var,并且它们之间的点=你的/(正斜杠)。然后清理并检查它,然后当你使用像这样的查询插入它时 - mysql_query(&#39;更新用户设置avatar =&#34;&#39;。$ avatar。&#39;&#34;其中id =就是这样。