Chrome и Firefox не отображают изображение из базы данных

У меня возникла проблема с получением изображения из базы данных с помощью Entity FrameWork 6 в Chrome и Firefox, у меня нет этой проблемы с 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;
}

Шаблон с Eval в GridView

                    <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>

Вопрос в том, что веб-приложение отлично работает в IE, но не в Chrome и Firefox, и я нигде не могу найти anwaser, кстати, я начинаю с aspnet, и мне нужен ТОЛЬКО сайт, который сохраняет и извлекает изображения, не нужно быть с сущностью, поэтому ЛЮБОЕ решение или предложение будут благодарны.

Спасибо за всех вас.


person Jeú Casulo    schedule 25.02.2016    source источник


Ответы (1)


Сохраните только имя файла в таблице базы данных и сохраните изображение на своем пути к серверу и вызванное изображение с сервера на вашей странице aspx...

person Pragnesh    schedule 25.02.2016
comment
Он хочет получить изображение (возможно, BLOB) в базе данных. Предположим, что это правильное решение для его веб-страницы, ваше предложение не добавляет ценности решению с его текущей реализацией... - person DTH; 25.02.2016
comment
Pragnesh - Под путем к серверу вы подразумеваете локальный диск/папку? Я что-то видел об этом, но правильный ли это процесс? (Я правда не знаю). Интересно, может ли большое количество изображений перегрузить сайт и сделать его медленным/тяжелым? - person Jeú Casulo; 25.02.2016
comment
DTH - я использую таблицу со столбцом типа изображения, но она также работает с двоичным типом - person Jeú Casulo; 25.02.2016
comment
Я мог бы сохранить изображение на локальном диске точно так же, как FileUpload1.SaveAs(Server.MapPath(~/Images/ + FileName)); Но вопрос в том, решит ли это проблему, так как проблема только с google chrome и firefox. - person Jeú Casulo; 25.02.2016
comment
Jeu Casulo - я с самого начала использовал изображения для сервера/папки, но все еще не получил никаких проблем с хромом и firefox. Пожалуйста, проверьте, нет ли проблем с вашим изображением или проектом... Пожалуйста, создайте тестовый веб-сайт и попробуйте загрузить изображения.. .если он не показывает изображение, то есть проблема с вашим системным приложением, если вы не возражаете, вставьте свой код и позвольте мне проверить ваш код - person Pragnesh; 26.02.2016