将二进制图片上传到数据库并显示在列表视图中

时间:2015-08-08 15:41:44

标签: asp.net asp.net-mvc

我尝试将图像上传到数据库,但是我无法在具有sql数据源的ListView中显示图像

这是我的上传图片代码

int img = ImageUpload1.PostedFile.ContentLength;

byte[] msdata = new byte[img];

ImageUpload1.PostedFile.InputStream.Read(msdata, 0, img);

myCommand.Parameters.AddWithValue("@image_1", msdata);

显示图片

<asp:Image ID="Image1" runat="server" src='<%# DataBinder.Eval(Container.DataItem, "image_1") %>'  CssClass="background-image: url(data:image/jpeg;base64,IVB)" />

这是我不断得到的错误

  

无法将索引15处的Unicode字符\ uDAFF转换为指定的代码页。

1 个答案:

答案 0 :(得分:0)

你不必立刻走我的路,但我尝试过,并且工作很快:

我创建了一个将File对象返回给浏览器的方法:

public ActionResult GetThumbnail(Guid id)
{
    var fileToRetrieve = Db.Pictures.Find(id);

    if (fileToRetrieve == null)
        return null;

    if (fileToRetrieve.Thumbnail == null)
        return null;

    return File(fileToRetrieve.Thumbnail, fileToRetrieve.ContentType);
}

在浏览器中,我只是将img src属性设置为该方法,并使用我需要检索的ID。

<img src="~/Picture/GetThumbnail?id=@item.Id" />