[英]ideas for storing images with alt tags in a database/cms? PHP/MySQL
我正在構建一個簡單的CMS,並具有登錄名,編輯頁面等。
那些已經建立了自己的CMS的人,如何存儲帶有alt標簽的用戶上傳的圖像?
數據庫中的文件名/路徑以及那里的alt標簽?
然后在寫出圖像時獲取ID,並創建一個充當圖像的php頁面?
例如: <?php include image.php?id=1; ?>
<?php include image.php?id=1; ?>
image.php輸出:
get id
connect to db
echo '<img src="nameofimageandextension" alt="alttag">';
還是那不是一個好主意?
存儲名稱和替代文本似乎是最好的解決方案。 然后可以將該路徑配置為靜態,即/user/upload
或類似的名稱。
然后,需要時必須通過php路由圖像,以確保顯示alt文本。
<img src="<?php echo $imagePath . $imageNameFromDB; ?>" alt="<?php echo $imageAltFromDB; ?>"/>
這樣創建表(或用戶表的擴展)的問題在哪里?
+----+----------------+------------------+
| 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會弄亂一些瀏覽器緩存,因此這意味着用戶每次訪問它時都必須加載整個網站 。
對於用戶或您的服務器流量而言並不令人滿意。
路徑是我存儲在數據庫中的資源-resources / myimage.png。 但是要使其正常工作,您必須將它作為資源插入到數據庫mysql中。 myimage.png我就是這樣--->
$ upload_path ='資源/'; //將文件上傳到的位置(當前為“文件”目錄)。 $ filename = $ _FILES ['userfile'] ['name']; //獲取文件名(包括文件擴展名)。 $ ext = substr($ filename,strpos($ filename,'。'),strlen($ filename)-1); //從文件名獲取擴展名。 $ avatar = $ upload_path。 $ filename; //這里是關鍵。 兩者都為var,點之間的點=您的/(正斜杠)。 然后清理並檢查它,然后當您使用查詢將其插入時,如下所示:mysql_query('update users set avatar =“'。$ avatar。'”其中id =就是這樣。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.