Привязка изображения с сервера SQL к ретранслятору в ASP. NET не загружается? - PullRequest
0 голосов
/ 05 августа 2020

Я хочу привязать изображение с SQL сервера к ретранслятору в ASP. NET, изображение не загружается вот мои коды при привязке изображения, не загружающегося, может кто-нибудь помочь, пожалуйста?

enter image description here

 Просмотр продуктов  ' Шрифт -Bold = "true" /> ' Width = "100" Height = "100" AlternateText = "Изображение не найдено" Visible = "правда" /> Автор сообщения: ' /> Дата создания: ' />    publi c void RepeterData () {con.Open (); cmd = new SqlCommand («Выбрать * из [Продукты T]», con); DataSet ds = новый DataSet (); da = новый SqlDataAdapter (cmd); da.Fill (ds); RepterDetails.DataSource = ds; RepterDetails.DataBind (); con.Close (); } 

Ответы [ 2 ]

0 голосов
/ 05 августа 2020

Вы не можете передать Bytes через URL-адрес, прежде чем передать изображение в свой ASP. NET элемент управления, вы можете выполнить следующие действия (я предполагаю, что ваш формат изображения jpg):

<asp:Image ID="Image1" runat="server" ImageUrl='<%#Eval("img1") %>' Width="100" Height="100" AlternateText="No picture found"  Visible="true"/>
...
public void RepeterData()
{
    ...
    var imageBinary = ds["Img1"].ReadAsBytes();
    var imageString =  Convert.ToBase64String(imageBinary , 0, imageBinary.Length);
    Image1.Src =  "data:image/jpg;base64," + imageString;
}
0 голосов
/ 05 августа 2020

Байтовый массив не является URL-адресом изображения. Вы не можете просто вставить его в URL и ожидать появления изображения.

Вам нужно преобразовать байтовый массив обратно в реальное изображение. Либо создав Generi c Handler, который загружает изображение, либо покажет его как base64

ImageUrl='<%# "data:image/jpeg;base64," + Convert.ToBase64String((byte[])Eval("img1")) %>'

Однако я бы использовал base64 только в том случае, если изображения очень маленькие и их не так много.

...