2010-11-22 48 views
0

目前我的系統可以根據需要調整大小並創建儘可能多的圖像並將它們存儲在Web服務器文件系統中。另外我在mysql中創建和輸入圖像基本名稱的數據庫。 例如,我上傳了5張圖像,基本名稱是372FDSC,然後它會將_0,_1等添加到文件系統中的每個圖像,以便它使圖像看起來像372FDSC_0.jpeg等等。在mysql中保存圖像名稱?

那麼我的問題在哪裏?這是我不能刪除或上傳新的​​圖像,因爲我不知道代碼中的圖像名稱。

我不知道是否有一些更好的解決方案來保存文章的圖像名稱?就像包含所有名稱的mysql行一樣(372FDSC_0.jpgeg; 372FDSC_01.jpeg等)因此,當我刪除或上傳新的​​我知道我可以使用什麼文件名。

我希望這一切對任何人都有幫助,如果沒有請說,我會添加所需的細節。

+0

這裏的每個答案都不是我所期待的,但那可能是因爲我的問題很糟糕。所以我選擇一個幫助我重寫我的圖像工作流程的人。 – arma 2010-11-22 11:07:17

回答

2

您可以在圖像名稱末尾使用時間戳,因此您確定它是唯一的。

$new_name = $basename . "_" . time() . $extension; 
+0

Btw經過一段時間撞這廢話劇本我得到我意識到time()函數不保證獨特的價值。由於我的腳本速度非常快,我喜歡所有具有相同時間戳的圖像。 所以我可能會爲每個圖像名稱生成我自己的12符號字符串。 – arma 2010-11-22 19:18:28

+0

哦,並且如果您爲縮略圖和其他圖像生成相同的名稱,名稱將會關閉。 – arma 2010-11-22 19:22:53

+0

您可以在每張圖片之後使用sleep(),因此時間戳將被更改。要獲得縮略圖和圖像的相同時間戳,您應該將時間戳保留在變量中。像$ time = time()一樣,時間戳將被捕獲。 – Flipke 2010-11-23 08:09:49

1

上面說你可以使用時間戳,或者您也可以給你的圖片基於什麼圖像包含代替372FDSC命名的描述性名稱。

1

在數據庫表中有3列標題爲'basename','no of images','文章名'。 現在讓一個循環來獲取所有的圖像。 例如,如果您的文章'abc'中有5張圖片。然後您將使用

for($i=0;$i<5;$i++) 
    $images[]=$basename.$imageno; 

請記住,$ basename是從數據庫中檢索到的基本名稱,同樣適用於$ imageno。

0

您可以使用您的文章ID字段重命名圖像。例如,如果您的文章ID爲237,則圖像將爲237_1.jpg,237_2.jpg等。

在這種情況下,您不需要將圖像名稱存儲在數據庫中。