2009-10-08 88 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

相关问题