从变量二进制数据创建附件并使其可下载

本文关键字:下载 变量 二进制 数据 创建 | 更新日期: 2023-09-27 18:31:07

>我在数据库中有一个附件表,其中有一个变量二进制格式的文件名和文件数据。在 c# 端,我需要将此数据转换为字符串,并根据 MIMEType 创建一个可下载的 .xls/.pdf 文件。最好的方法是什么?我可以使用 ActionLink 来执行此操作吗?我是使用 MVC 的新手,不知道最好的方法。任何建议将不胜感激。

从变量二进制数据创建附件并使其可下载

我会绕过转换为字符串,只担心返回正确的 mime 类型。

看看这个问题:

byte[] 到 MVC 3 中的文件类型

您只需要确定内容类型即可设置 MIME 类型。

我可以使用 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,因为大多数浏览器都可以打开它,对于其他文件类型,请使用 attachment

我以前不得不做同样的事情。我将返回一个 FileContentResult,然后使用 Urlmon.dll 来确定要传递给 File 方法的 mime 类型,http://msdn.microsoft.com/en-us/library/dd460208.aspx,在控制器类上,使用从数据库获得的 byte[] 数据,以及 Urlmon.dll、http://pinvoke.net/default.aspx/urlmon.FindMimeFromData、pinvoke 返回的 mime 类型。