3

我正在.NET 中为用户配置文件上的演示图像编写上传功能。我正在两种不同的方式之间进行选择,并想就利弊提出建议和意见。

  1. 将图像直接存储在文件系统上

  2. 将图像存储在数据库中

到目前为止,我主要是第一个选项 - 在用户名之后命名图像,因为每个用户只能有一个演示图像。然后我在指定路径中检查用户是否有图像,如果没有则显示默认的“无图像”-图像。

我喜欢它的另一件事是它节省了数据库中的空间——如果没有额外的二进制负载,数据库将非常沉重。

我敢肯定还有其他方面我没有考虑过,所以我想听听您对此的看法。如果有人对这个问题有完全不同的解决方案,也请分享!

4

5 回答 5

2

通常,最好将文件存储在文件系统上。文件系统已经针对存储文件进行了调整。但是,这确实有其缺点,特别是在管理、备份、恢复方面,并且它在数据库中的 varchar 文件路径字段和文件系统中的文件之间有些脆弱的联系。你用的是什么数据库系统?我认为如果您使用的是 SQL Server 2008,那么新的 FileStream 类型为在该数据库中存储文件提供了一种非常好的方法。

编辑:注意我真的在谈论更普遍的关于在数据库中存储文件的问题。尝试在数据库中存储要在 HTML 页面上显示的图像会涉及一些额外的复杂性。

于 2009-02-25T09:05:26.960 回答
0

文件系统很好,但每个文件夹超过 3000 个图像不实用。最好为每 3000 个图像块编写自动文件夹创建。

于 2009-02-25T09:07:56.127 回答
0

数据冗余和不一致 数据访问困难 数据隔离 完整性约束 原子性问题 并发访问和异常(更新安全问题

于 2009-12-22T04:36:59.913 回答
0

对于固定(不变)的内容,例如照片、视频等,文件系统将无法扩展,尤其是当目录中有大量文件并且性能会受到影响时。更好的选择是使用对象存储技术,将图像存储为对象并自动将关联的元数据放入数据库中。

于 2016-02-18T18:07:05.793 回答
-2

如何存储 doc、pdf、xls、jpg 文件?推荐哪一个?

我打算开发一个可能存储 10000 个文件的文档管理系统,但问题是如果我们使用文件系统技术,我非常担心病毒传播。

于 2009-05-23T01:53:08.363 回答