我在DB中有一个Attachments表,其中有一个varbinary格式的文件名和filedata。在c#end上,我需要将此数据转换为字符串,并根据MIMEType创建可下载的.xls / .pdf文件。做这个的最好方式是什么?我可以使用ActionLink执行此操作吗?我是使用MVC的新手,并不知道最好的方法。任何建议将不胜感激。
答案 0 :(得分:1)
答案 1 :(得分:1)
我可以使用ActionLink执行此操作吗?
是
在c#end上,我需要将此数据转换为字符串并依赖于 MIMEType,创建一个可下载的.xls / .pdf文件。
您将Content-Disposition(http://msdn.microsoft.com/en-us/library/ms526989(v=exchg.10).aspx)添加到响应标头。
内容处理:附件
指定为包含附件的身体部位需要显示用户操作。通常是从消息中分离出来的。它们通常存储为文件以供后续访问。此标头的可选参数包括:文件名,创建日期,修改日期,读取日期和大小。
内容处理:内联
打开邮件时会向用户显示内联内容。内联正文部分将按照它们在消息中出现的顺序显示,并受适用于多部分内容类型的规则的约束。如果多部分正文部分具有内联标题,则内联指定将作为整体应用于多部分,而不是其子部分。
检查代码:https://stackoverflow.com/a/9610656/1241400
您可以将inline
用于* .pdf,因为大多数浏览器都可以打开它,而其他文件类型则使用attachment
。
答案 2 :(得分:0)
我以前必须做同样的事情。我将返回一个FileContentResult,然后使用Urlmon.dll确定要传递给Controller类的File方法http://msdn.microsoft.com/en-us/library/dd460208.aspx的mime类型,使用从DB获取的byte []数据,以及mime类型由Urlmon.dll,http://pinvoke.net/default.aspx/urlmon.FindMimeFromData,pinvoke返回。