我正在开发一个项目,我必须使用上传文件。我使用ASP.NET MVC3(C#)作为前端,使用SQL Server 2008 R2作为后端。现在上传文件我必须选择:
1)将文件上传到项目的特定目录并将其路径存储到数据库中(在将文件上传到该目录之前,我必须将文件名更改为当前时间戳,以便所有文件都具有唯一名称。)
2)将文件直接上传到数据库中。
哪个选项更好?我的项目以KB格式上传文件(pdf / word / images)。
答案 0 :(得分:3)
直接存储在文件系统上通常可以提供更好的性能。存储在数据库中意味着您可以在同一事务中完成文件的插入和更新(我认为您将存储在数据库的某个表中)。
第三种选择是使用MSSQL的文件流功能,使您可以将文件作为数据库中的字段处理,但也可以通过共享直接访问它们。
答案 1 :(得分:0)
我更喜欢将文件存储在ftp服务器中并将其路径放在数据库中。此外,使用文件名的时间戳似乎不对。使用db key值作为文件名是一个更好的主意。
当然,维护事务还有一个额外的复杂性 - 文件系统和数据库应始终保持同步。
答案 2 :(得分:0)
存储路径。您可以更轻松地更改文件。