我在数据库中有一个附件表,其中有一个 varbinary 格式的文件名和文件数据。在 c# 端,我需要将此数据转换为字符串,并根据 MIMEType 创建一个可下载的 .xls/.pdf 文件。做这个的最好方式是什么?我可以使用 ActionLink 来执行此操作吗?我是使用 MVC 的新手,不知道最好的方法。任何建议,将不胜感激。
3 回答
我可以使用 ActionLink 来执行此操作吗?
是的。
在 c# 端,我需要将此数据转换为字符串,并根据 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,因为大多数浏览器都可以打开它,而对于其他文件类型,请使用 .pdf attachment
。
我以前不得不做同样的事情。我将返回一个 FileContentResult,然后使用 Urlmon.dll 来确定要传递给Controller 类上的 File 方法http://msdn.microsoft.com/en-us/library/dd460208.aspx的 mime 类型,并使用您从数据库中获得的 byte[] 数据,以及 Urlmon.dll 返回的 mime 类型,http ://pinvoke.net/default.aspx/urlmon.FindMimeFromData ,pinvoke。