2009-12-18 131 views
3

我在决定在哪里存储用户上传的文件在我的asp.net mvc应用程序中遇到问题。MVC和用户上传的文件,在哪里存储文件?

我已经使用asp classic大约10年了,并且始终将我的文件存储在站点上的光盘上,并将文件名和文件夹存储在数据库中。

你们会如何解决这个问题?

让他们在数据库中,并可能在那里得到性能问题?或者按照我总是这样做的方式离开它,并且可能会遇到“sync”文件系统和db问题?

我必须有某种数据库中的关系信息,所以我不能将它们存储只是在盘

我使用SQL 2005个大气压,而我读的地方,SQL 2008,现在有某种的DataColumn的只是将一个“指针”(如文本数据类型)存储到光盘上的文件中,那么该走的路呢?

在某些方面,数据库由于某种原因被称为数据库,所以不知道为什么要重新发明轮子? :)

任何指针或想法,将不胜感激,我想我只是想知道我可能会遇到,如果我与数据库的方法

/M

回答

2

你可以使用特殊的问题,去App_Data文件夹放置上传的文件并将路径存储到数据库中。如果你使用SQL Server 2008,那么你可以看看FILESTREAM类型。

1

我不确定您的Web应用程序是否具有负载均衡,对于我过去构建的文件管理系统,我总是将我的文件存储在SAN或网络共享驱动器上,以便它们可以访问到所有网络/应用服务器。另外,我不会像原样那样存储文件,而是在将它们保存在文件系统(我通常使用GUID作为文件名和随机文件扩展名)之前,始终更改文件名和文件类型。最后,我会将原始文件信息存储在数据库中,这些文件可以在逻辑上而不是物理上移动或复制。

+0

您好,请您详细说明最后一句话吗?谢谢:) – Bartosz 2017-03-23 22:48:12