The*_*boy 4 c# asp.net-mvc asp.net-mvc-3
在我的MVC应用程序中,我最近配置了一个页面,允许上传任意文件类型(某些限制不适用于此问题).
我将文件作为数据类型byte []存储在数据库中,存储的文件类型基于文件扩展名(请不要试图给我一个更好的选项来存储这些文件,我很清楚存储文件在数据库不是一个好习惯,但我们有一个约束,要求我们使用SQL Server持久保存这些文件.)
正如我所说,为了使这更糟糕,我将文件的byte []数组存储在数据库类型为text的列中.这只是这样做,所以我不必担心varbinary类型的限制.
我想知道的是,当请求文件时,MVC将这些文件返回给具有指定文件扩展名的用户的最佳方法是什么?
我之前已经能够使用excel文件和AJAX调用我的控制器上的"GET"操作,但我想知道是否有更好的方法来执行此操作.
有什么建议?
示例:如果我有以下代码
string fileExtension = /*Some File Extension*/
byte[] data = MyDataContext.DocumentTable.First(p => p.DocumentUID == id);
Run Code Online (Sandbox Code Playgroud)
然后,我如何使用最初保留的fileExtension以指定的文件格式将此数据返回给用户.
编辑我猜测FileResult将是实现这一目标的最简单方法之一.
你会回来的FileContentResult.
在你的控制器中,这样的事情:
byte[] data = MyDataContext.DocumentTable.First(p => p.DocumentUID == id);
return File(data, "text/plain", "myfile.txt");
Run Code Online (Sandbox Code Playgroud)
除了文件的扩展名,您还需要为其指定名称.第二个参数是MIME类型.这对于某些浏览器(如FireFox)来说非常重要,可以确定打开文件的应用程序.Firefox将更喜欢扩展名的MIME类型.
| 归档时间: |
|
| 查看次数: |
6184 次 |
| 最近记录: |