Asp.net mvc 2 如何在mvc页面中显示blob文件?

Asp.net mvc 2 如何在mvc页面中显示blob文件?,asp.net-mvc-2,blob,Asp.net Mvc 2,Blob,我在数据库中上传了一些不同的blob类型(.pdf、.xls、.gif、.png…)。 现在我想显示它的图标(按类型)并在我的查看页面中读取它的blob内容,例如,如果这是一个pdf文件,则显示pdf图标并双击该文件打开 请帮助我,谢谢您想做的事情由两部分组成:一个视图页面显示每个文件的链接(带有图标),另一个单独的操作(在您的一个控制器中)提供实际的文件内容 最简单的方法可能是在将文件上载到数据库时分析文件类型,然后将文件类型存储在数据库中的单独列中。对于大多数文件,可以从文件的前几个字节派生

我在数据库中上传了一些不同的blob类型(.pdf、.xls、.gif、.png…)。 现在我想显示它的图标(按类型)并在我的查看页面中读取它的blob内容,例如,如果这是一个pdf文件,则显示pdf图标并双击该文件打开


请帮助我,谢谢

您想做的事情由两部分组成:一个视图页面显示每个文件的链接(带有图标),另一个单独的操作(在您的一个控制器中)提供实际的文件内容

最简单的方法可能是在将文件上载到数据库时分析文件类型,然后将文件类型存储在数据库中的单独列中。对于大多数文件,可以从文件的前几个字节派生文件类型(请参见)

负责向用户交付文件内容的控制器的操作很容易实现。基于文件的某个ID,它将其从数据库加载到字节数组中,并将其作为FileContentResult实例返回


要创建指向文件的链接(在视图页面中),只需使用Html.ActionLink或类似的函数,其中包含控制器名称、操作名称和文件ID。

这其中的哪一部分在实现上有困难?查询数据库?将文件流式传输到响应中?在视图中显示可用实体的列表?如何获取扩展文件类型,在以下代码中:var extension=Path.GetExtension(SourceFileName.ToLower();SourceFileName是文件的物理地址,我可以传递它吗?如果您只有一个BLOB,那么您可能没有文件名。Path.GetExtension对文件名有效。所以,不,你不能通过它一滴。