Преобразование изображения, хранящегося в удаленной папке, в base64 в веб-приложении - PullRequest
0 голосов
/ 12 февраля 2020

В моем веб-приложении мне нужно преобразовать изображения из каталога в строку. Каталог создается в виде списка с помощью. NET Framework 4 с использованием веб-формы

Protected Sub ProductsLv_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.ListViewItemEventArgs) Handles ProductsLv.ItemDataBound
    If e.Item.ItemType = ListViewItemType.DataItem Then
            Dim dataRow = DirectCast(e.Item.DataItem, DataRowView)
            Dim path = Replace("~/Products/Immagine.ashx?FileName=" & dataRow("ImageName"), "\\machine\Foto\", "")
            path = "http://" & Me.Request.Url.Host & ResolveUrl(path)
            Dim sBase64 As String = "data:image/jpeg;base64,"
            Using w As New System.Net.WebClient()
                Dim buffer As Byte() = w.DownloadData(path)
                sBase64 &= Convert.ToBase64String(buffer)
            End Using
            DirectCast(e.Item.FindControl("myIMG"), System.Web.UI.WebControls.Image).ImageUrl = sBase64
    End If
End Sub

Код выше, кажется, работает хорошо, потому что я нашел строку в источник изображения html, полученный по ответу сервера, но изображения не видны

Какую ошибку я делаю?

Значение sBase64 равно

1 Ответ

0 голосов
/ 12 февраля 2020

ImageUrl нужен относительный или абсолютный путь. Поэтому попробуйте вместо этого установить атрибут «src» следующим образом.

DirectCast(e.Item.FindControl("myIMG"), System.Web.UI.WebControls.Image).Attributes("src") = sBase64
...