我正在建立一个简单的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">';或者这不是一个好主意?
发布于 2012-11-12 18:18:17
创建这样的表(或用户表的扩展)的问题在哪里?
+----+----------------+------------------+
| 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]}" />';我相信这是最干净和最简单的(最好的?)做得很好。
回答第二个问题:
这取决于你想如何保护你的图片,但通常情况下,no,最好是显示真实的图片链接。除非是验证码或其他one time use only图像,否则您不希望用户看到所有图像都是myimage.php?id=1样式的。
使用PHP作为图片会弄乱一些浏览器缓存,所以这意味着用户每次使用它时都必须加载整个网站的url。
对用户或您的服务器流量不是很愉快。
发布于 2012-11-12 18:07:03
存储名称和alt文本似乎是最好的解决方案。然后可以将路径配置为静态的,即/user/upload或类似的内容。
当需要时,图像将必须通过php路由,以确保显示alt文本。
<img src="<?php echo $imagePath . $imageNameFromDB; ?>" alt="<?php echo $imageAltFromDB; ?>"/>发布于 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。
https://stackoverflow.com/questions/13341626
复制相似问题