2011-07-01 40 views
2

我的網站有很多配置文件,每個配置文件有幾個圖像。用戶自己上傳這些圖片。我需要鏈接磁盤和MySQL表中的配置文件的圖像。告訴我以更好的靈活性實現此功能的最佳方式?如何將圖像與數據庫中的記錄鏈接起來?

ps我正在使用CodeIgniter 2 + MySQL。

+0

您可以提供有關您當前上傳結構的更多信息嗎?例如。是否所有圖像都上傳到共享目錄,或者您要爲每個用戶創建一個文件夾? – Ryan

+1

所有的iamges上傳在一個文件夾中,具有唯一的名稱。 – NiLL

+0

@NILL的建議很有意義。或者將用戶記錄與圖像路徑一起存儲。 –

回答

2

當您使用笨。 我假設你正在使用文件上傳類。

上傳成功完成後,您可以使用

$this->upload->data() 

這基本上返回一個包含了所有與上傳數據的數組。 示例性陣列

Array 
(
    [file_name] => mypic.jpg 
    [file_type] => image/jpeg 
    [file_path] => /path/to/your/upload/ 
    [full_path] => /path/to/your/upload/jpg.jpg 
    [raw_name]  => mypic 
    [orig_name] => mypic.jpg 
    [client_name] => mypic.jpg 
    [file_ext]  => .jpg 
    [file_size] => 22.2 
    [is_image]  => 1 
    [image_width] => 800 
    [image_height] => 600 
    [image_type] => jpeg 
    [image_size_str] => width="800" height="200" 
) 

其更好地這些細節存儲到數據庫中,以與所述圖像所屬的用戶ID一起。 而當你想要檢索的圖像,只是做查詢,其中用戶ID = someint ..

我覺得這個方案是不是存儲在數據庫中的圖像更好。

2
+1

爲什麼要這樣做?它意味着您需要每次請求圖片時都會不必要地碰到你的數據庫 –

+0

基本實踐中,將文件存儲在BLOB中非常昂貴和緩慢 – NiLL

+1

我同意放大圖像,但我認爲對於像個人資料圖片這樣的小東西來說,這可以工作得很好。感覺比賦予用戶上傳由Web應用程序提供的文件的能力更安全,並且它簡化了備份,並且封裝了應用程序數據比文件系統解決方案乾淨。 – JohnFx

相關問題