如何将VarBinary文档检索到ASP.NET MVC视图

问题描述 投票:0回答:1

[我有一个SQL Server数据库,正在使用ASP.NET MVC上载文档和图像(PDF的txt等。)。

我有2个问题:

  1. 我当前的图像列的数据类型为varbinary(MAX),但是有没有更好的数据类型(图像)?

  2. 如何在ASP.NET MVC中创建ActionLink来打开这些文件?甚至只是下载它们?

由于该图片可能是任何扩展名,因此我不确定我是否会正确处理。这是我一直在测试的一些控制器代码:

public byte[] GetImageFromDataBase(int Id)
{
     var q = from temp in db.Swap where temp.ID == Id select temp.Image;
     byte[] cover = q.First();
     return cover;
}
c# sql asp.net-mvc
1个回答
0
投票

1)考虑marc_sdocumentation,您应该更喜欢使用varbinary(max)

2)创建一个返回文件的动作

public class HomeController : Controller
{
    [HttpGet]
    public ActionResult DownloadFile(int id)
    {
        byte[] fileContent = GetImageFromDataBase(id);
        string extension = //get image extension;

        return File(fileContent, "image/" + extension, "filename from db");
    }
}

然后在视图中创建此操作的链接

@Html.ActionLink("Get image", "DownloadFile", "Home", new { id = 5}, null)
© www.soinside.com 2019 - 2024. All rights reserved.