2011-08-26 65 views
0

我需要建立一個網站,用戶可以將照片添加到他們宣傳的產品中。 我的問題是,我不知道如何以及在哪裏存儲每個用戶的照片,以及如何爲他們(照片)創建訪問權限。哪些是解決這個問題最常用的方法?使用照片和數據庫

如何創建一個文件夾爲每個用戶使用PHP或JavaScript或jQuery的照片,如果這是一個好主意?

+1

既然你問「使用php或javascript或jquery」,我認爲你有點頭痛。 –

+0

有很多常見的方法。存儲在數據庫中是一個。存儲在磁盤上是另一回事。呃,其實就是這樣。 :-)但是我必須同意Diodeus的看法,如果你認爲JQuery對圖片的實際存儲有什麼要求,你應該退後一步。 – GolezTrol

回答

1

如果您可以更輕鬆地將照片保存到磁盤,文件夾圖片/產品

保存圖像信息到數據庫[圖像標識,IMAGESIZE,IMAGETYPE]

保存圖像像user_id_image_id_product_id.jpg例如磁盤

954_231_312.jpg

那裏不會是重複的。

當圖片已保存然後更新您的數據庫記錄在裏面放一個名字,更容易得到相關的產品

update tbl_images set name = 'user_id_image_id_product_id.jpg' where image_id='image_id' 

或者,如果你的服務器足夠強大,你可以把它們保存到數據庫中的圖像。保存到數據庫使一個進程更容易,這是備份,你只需要備份數據庫而不是圖像文件夾,但更快的方式是文件系統。

0

您可以通過創建一個資源庫文件夾開始 - 在那裏你會保留用戶的地方上傳圖片和其他文件。
當用戶上傳某些東西時,您可以根據存儲庫(您如何管理每個用戶文件)將文件置於此存儲庫的某處。如果他已經在存儲庫中沒有用戶的ID並且將文件放在那裏,您可以創建一個帶有用戶ID的文件夾。

一旦放置,您應該將上傳文件的文件名保存在您的用戶的數據庫中。然後,當您需要刪除文件或找到它時,只需查找用戶的文件名即可。

0

我同意@SenadMeškin的一切,除了將照片存儲在數據庫中。雖然這是一個不錯的主意,但數據庫會變得很快。數據庫越大,備份的時間越長等。

也每次你從數據庫提供圖像,你需要使用php或其他語言從數據庫中提取文件並將其傳遞給用戶,生成正確的文件類型/ MIME類型頭等

這可以用盡你的服務器內存很快,如果你從數據庫中拉出大量的大文件,並將它們存儲在內存中,而你將它們返回給最終用戶。

如果將圖像存儲的文件夾中,他們是公開的,那麼你可以指定URL和任何人都可以查看它與HTML直接,無需任何PHP處理。

,如果你需要控制訪問的圖像,你可以驗證他們的身份第一次,然後使用功能類似中繼PHP中,該文件以最小的處理開銷返回。 還有另外的apache模塊,你可以像sendfile一樣安裝,這也會加快速度。