C#MVC使用二进制流显示图片

时间:2022-11-12 22:56:13

关于显示图片的最好方法当然是img 的src直接指向地址,简单实用。但是有时候也会使用到使用图片流显示图片的方法。实现也比较简单(在C# mvc中,java的不了解)。具体如下:

1.前台cshtml部分

添加img 标签,其地址指向后台的返回图片流的方法。

<img src="@Url.Action("ShowImage","ShowImgFromImgByte",new { id="5"})" /><span id="__kindeditor_bookmark_start_14__"></span>

@Url.Action方法有三个参数,方法名、Control名称、方法参数(参数类型不用写)

2.后台control部分

/// <summary>
/// 本地图片
 /// </summary>
/// <returns></returns>
public FileResult ShowImage(string id)
{
    string _path = string.Concat(System.AppDomain.CurrentDomain.BaseDirectory, "Content\\images\\longmao.png");
    FileStream fs = new FileStream(_path, FileMode.Open);
    byte[] byData = new byte[fs.Length];
    fs.Read(byData, 0, byData.Length);
    fs.Close();
    return File(byData, "image/jpg");
}

其中返加值类型为FileResult,不是我们常见的ActionResult,同样的,return时也是return File().关于mvc的不同返回类型,大家可以上网了解下。

特别说明,这种图片的展示方法不推荐,使用起来相对比较麻烦。