[我有一个SQL Server数据库,正在使用ASP.NET MVC上载文档和图像(PDF的txt等。)。
我有2个问题:
我当前的图像列的数据类型为varbinary(MAX)
,但是有没有更好的数据类型(图像)?
如何在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;
}
1)考虑marc_s和documentation,您应该更喜欢使用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)