2009-10-08 47 views
0

我正在解決在我的web應用程序中存儲文件的問題。在PHP和MySQL中存儲上傳文件的位置?

我已經做了一些應用程序,文件存儲在文件系統(通過PHP簡單地上傳文件),我不知道如何正確解決安全問題(我有一個共享的webhosting Web應用程序)。是否有任何針對這些問題的「手冊」或書籍?

最近,我做了一個web應用程序,其中文件存儲在MySQL數據庫中,它似乎是非常容易使用,我不需要解決文件的權限。缺點是系統有額外的開銷。

根據你的情況,有什麼更好的? (我有小文件〜100kB)

謝謝!

+0

「在DB中存儲圖像 - 是或否?」@ http://stackoverflow.com/questions/3748/storing-images-in-db-yea-or-nay – derobert 2009-10-08 17:59:28

回答

1

每種解決方案都有其優點和缺點。

將文件存儲在數據庫中對於小文件非常適用。只要記住將文件本身以及有關這些文件的任何元數據保存在兩個不同的表中。這將防止您的查詢被二進制數據放慢。另外請記住,加班時,這可能導致非常大的數據庫表。

文件系統存儲非常棒,但請記住,如果將文件存儲在數據庫中,您將不得不考慮文件權限/安全性。

我希望這能夠讓你朝着正確的方向前進。如果您有任何問題,請發表評論。

+0

爲什麼要保留文件內容和元數據兩張桌子?我認爲表是由列組成的,blob列只是數據實際存在的mysql的「指針」 - 所以我不知道爲什麼它應該更慢。但是,謝謝你的提示! 我在想:包含文件的表的大小可能會被拆分成許多較小的表(例如table_1,table_2,..),從而防止一個大表崩潰。 – 2009-10-08 18:02:06

+1

所有這些優點和缺點都覆蓋在深處@ http://stackoverflow.com/questions/3748/storing-images-in-db-yea-or-nay – derobert 2009-10-08 18:02:27

+0

@MartyIX:它會慢,如果你使用做'SELECT * ...'的愚蠢的ORM。 – derobert 2009-10-08 18:03:48