MVC 3中的byte 到文件类型
在我的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);
然后,我如何使用最初保留的fileExtension以指定的文件格式将此数据返回给用户。
编辑我猜测FileResult将是实现这一目标的最简单方法之一。
您将返回FileContentResult
。
在你的控制器中,这样的事情:
byte[] data = MyDataContext.DocumentTable.First(p => p.DocumentUID == id); return File(data, "text/plain", "myfile.txt");
除了文件的扩展名,您还需要为其指定名称。 第二个参数是MIME类型。 这对于某些浏览器(如FireFox)来说非常重要,可以确定打开文件的应用程序。 Firefox将优先于扩展名的MIME类型。
上述就是C#学习教程:MVC 3中的byte 到文件类型分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/962123.html