1

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

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

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

然后在写出图片的时候抓取id,创建一个充当图片的php页面?

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

image.php 输出:

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

或者这不是一个好主意?

4

3 回答 3

3

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

然后必须通过 php 路由需要的图像以确保显示 alt 文本。

  <img src="<?php echo $imagePath . $imageNameFromDB; ?>" alt="<?php echo $imageAltFromDB; ?>"/>
于 2012-11-12T10:07:03.483 回答
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 会弄乱一些浏览器缓存,因此这意味着用户每次访问时都必须加载您的整个站点。

对用户或您的服务器流量来说并不愉快。

于 2012-11-12T10:18:17.363 回答
0

该路径是我存储在数据库中的路径,例如 resources/myimage.png 。但要让它工作,你必须将它插入到数据库 mysql as--resources 中。myimage.png 我是这样做的--->

$upload_path = '资源/'; // 文件将上传到的位置(当前为“文件”目录)。$filename = $_FILES['userfile']['name']; // 获取文件名(包括文件扩展名)。$ext = substr($filename, strpos($filename,'.'), strlen($filename)-1); // 从文件名中获取扩展名。$头像 = $upload_path 。$文件名;//这里是关键。Asighn var 和 dot= your /(forward-slash) 在它们之间。然后当你使用这样的查询插入它时进行清理并检查它 - mysql_query('update users set avatar="'.$avatar.'" where id= 就是这样。

于 2012-11-12T10:22:49.773 回答