【发布时间】:2016-08-20 22:39:49
【问题描述】:
ASP.NET MVC 4 应用程序将文件存储在数据库中并允许下载它们。
Postgres 表 dokumarh 有两列
- filename text 使用 发布的文件的名称
- content bytea 文件内容为二进制数据。
应用程序允许从浏览器下载文件。下载的文件应打开该扩展的默认操作系统应用程序。例如,word 为 doc,excel 为 xls,记事本为 txt 等。
这个功能是使用控制器实现的
public FileStreamResult ShowDocument(string filename)
{
var manus = Db.QuerySingle(@"
select filename, content
from dokumarh
where filename=@0
", filename);
return new FileStreamResult(new MemoryStream(manus.content), "???")
{
FileDownloadName = manus.filename
};
}
MVC 文件流结果要求发送参数和内容类型标有“???”
在上传过程中,只有文件名可用;没有内容类型。
如何指定正确的内容类型?或者是否可以只返回文件名而不指定内容类型?或者是否有可以从文件扩展名中找到内容类型的 MVC 方法、数据库或库?
【问题讨论】:
-
你可以使用MimeMapping类
-
啊!我从来不知道。谢谢
-
@StephenMuecke 这解决了这个问题。您可以将其写为答案,以便我标记和投票。
标签: c# asp.net .net asp.net-mvc mime-types