簡體   English   中英

在數據庫/ cms中存儲帶有alt標簽的圖像的想法? PHP / MySQL

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM