我正在构建一个简单的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">';
或者这不是一个好主意?
答案 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 =就是这样。