我正在使用MVC 3和SQL Server 2008 R2。
我正在为我的客户端构建一个文件管理工具,因此他们可以存储图像和pdf,然后将它们插入到页面上。
我一直在研究SQL Server中的FILESTREAM,它看起来很棒。它允许我存储文件,并在出现问题时保留它们的备份。
但我也希望文件存储在某个地方,以便我的客户可以发送链接给某人,例如:http://www.mysite.com/files/mydoc.pdf
这里的最佳做法是什么?使用它们是否安全和/或聪明?
答案 0 :(得分:5)
如果通过URL提供文件是你在服务器上存储的唯一原因,我会说你不想这样做。
在MVC中,创建一个处理该URL的控制器操作,查找数据库中的文件并将其返回给用户是微不足道的。在这种情况下,文件名只是一个操作参数,您的操作逻辑采用该参数从数据库中检索文件并使用FileStreamResult
return File(fileStream, contentType, fileName);
这里有更多信息。大约一半的页面显示了使用FileStreamResult
http://www.mikesdotnetting.com/Article/125/ASP.NET-MVC-Uploading-and-Downloading-Files