作为我的应用程序注册过程的一部分,用户可以选择个人资料图片。我的第一个想法是将图片存储在我的数据库中,但我读到这不是一个好主意。我认为另一种解决方案是将图像上传到文件系统并将路径存储在数据库中。这是执行此操作的正确方法吗?是否可以保存在我的系统中存储未知文件?
问问题
148 次
3 回答
0
您必须始终使用上传功能检查您接受哪些文件。
至于图片检查这篇文章
于 2013-01-01T16:33:53.590 回答
0
database
当有一些相关数据时,最好存储图片。
将图片存储在filesystem
其中可能会导致您自己处理的并发和其他问题。
于 2013-01-01T16:47:28.127 回答
0
将图像和其他二进制资产存储在数据库中可能会很痛苦 - 您无法从 SQL 命令行轻松查看它们,对图像进行编码和解码的过程可能是一个性能问题,并且您可以执行的数据库操作相对较少在二进制blob上做。
但是,也有许多好处 - 图像与数据库的其余部分一起备份,并且在负载平衡的服务器场中,您不必担心跨多个 Web 服务器文件系统复制图像。
为了两全其美,我建议将图像存储在数据库中,但将它们缓存在 Web 服务器的文件系统中。这样,如果您向服务器场添加更多服务器,缓存将在请求映像时建立。通过缓存图像,您无需为每个请求支付“解码”性能损失。
您永远不应该相信您的用户所做的任何事情 - 您至少应该限制用户可以上传到图像的文件类型(.png、.jpg 等)。如果您正在运行一个大型的公共网站,请考虑通过病毒扫描程序运行上传的文件——据我所知,目前图像文件类型中没有任何漏洞,但几年前有一些漏洞,他们可能会回来。
于 2013-01-01T17:19:34.923 回答