【发布时间】:2016-06-08 04:52:22
【问题描述】:
我在 Chrome 和 Firefox 上使用 Entity FrameWork 6 从数据库中检索图像时遇到问题,我在 Internet Explorer 上没有这个问题。这是我尝试过的第三个“方法”,两者都达到了相同的结果。 这是一个简单的网络应用程序,可以从数据库中保存和检索图像,文本和数字列工作正常,只有图像不起作用。
保存方法
protected void btnSave_Click(object sender, EventArgs e)
{
// Code for Save Image
if (FUImage.HasFile)
{
int length = FUImage.PostedFile.ContentLength;
byte[] img = new byte[length];
FUImage.PostedFile.InputStream.Read(img, 0, length);
ImageGallery ig = new ImageGallery
{
SLID = 0,
ImageTitle = txtImageTitle.Text.Trim(),
Picture = img
};
using (MyDatabaseEntities1 dc = new MyDatabaseEntities1())
{
dc.ImageGalleries.Add(ig);
dc.SaveChanges();
lblMsg.Text = "Successfully Saved";
// populate Gallery image Here
PopulateGallery();
}
}
}
选择方法
private void PopulateGallery()
{
// here code for populate image gallery
using (MyDatabaseEntities1 dc = new MyDatabaseEntities1())
{
List<ImageGallery> imgGallery = new List<ImageGallery>();
imgGallery = dc.ImageGalleries.ToList();
gvGallery.DataSource = imgGallery;
gvGallery.DataBind();
}
}
转换方法
protected string GetImageString64(byte[] Image)
{
// For convert byte image to base 64 string
string base64String = Convert.ToBase64String(Image, 0, Image.Length);
return "data:image/png;base64 ," + base64String;
}
GridView 中带有 Eval 的模板
<asp:TemplateField ItemStyle-Width="150px">
<ItemTemplate>
<asp:Image ID="Image1" runat="server" Width="100px" ImageUrl='<%#Eval("Picture").ToString() == ""?"": GetImageString64((byte[])Eval("Picture")) %>' />
</ItemTemplate>
</asp:TemplateField>
问题是 webapp 在 IE 中运行完美,但在 Chrome 和 Firefox 中却没有,我无法在任何地方找到 anwaser,顺便说一下,我是 aspnet 的初学者,我只需要一个可以保存和检索图像的网站,确实不需要与实体在一起,因此任何解决方案或建议都将不胜感激。
谢谢大家。
【问题讨论】:
标签: asp.net entity-framework google-chrome gridview file-upload