【问题标题】:Chrome and Firefox do not display image from databaseChrome 和 Firefox 不显示数据库中的图像
【发布时间】: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


    【解决方案1】:

    仅将文件名保存在数据库表中,并将图像保存在您的服务器路径中,并在您的 aspx 页面上从服务器调用图像...

    【讨论】:

    • 他想要的是从数据库(可能是 BLOB)中检索图像。假设这是他的网页的正确解决方案,您的建议不会为他当前实施的解决方案增加任何价值......
    • Pragnesh - 服务器路径是指“本地驱动器/文件夹”?我看到了一些东西,但这是正确的过程吗? (我真的不知道)。我想知道大量图片是否会“超载”网站并使其变慢/变重。
    • DTH - 我正在使用带有图像类型列的表,但它也适用于二进制类型
    • 我可以将图像保存在本地驱动器中,就像 FileUpload1.SaveAs(Server.MapPath("~/Images/" + FileName));但问题是它是否能解决问题,因为只有谷歌浏览器和火狐存在问题
    • Jeu Casulo - 我从一开始就使用图像到服务器/文件夹,但我仍然没有得到任何关于 chrom 和 firefox 的问题,请检查您的图像或项目没有问题...请创建一个测试网站并尝试加载图像...如果没有;不显示图像然后您的系统应用程序有问题,如果您不介意粘贴您的代码并让我检查您的代码
    猜你喜欢
    • 1970-01-01
    • 2015-12-17
    • 1970-01-01
    • 1970-01-01
    • 2018-11-13
    • 1970-01-01
    • 2016-08-01
    • 2021-12-24
    • 2012-07-08
    相关资源
    最近更新 更多