Я немного новичок в веб-разработке, и я не могу достичь того, что я пытаюсь сделать.Получить двоичные данные из C# с Ajax
У меня есть база данных со столом под названием «PI_Banners», где хранятся некоторые изображения. В этой таблице хранится идентификатор и столбец VARBINARY, который содержит двоичные данные изображения.
Что я пытаюсь сделать, это получить эти данные с помощью запроса Ajax функции C# и создать тег «img», используя схему URI данных. Затем добавить, что новое изображение в DIV
Это то, что я получил:
Ajax вызов:
$(document).ready(function() {
var dto = {};
var dtoJSON = JSON.stringify(dto);
$.ajax({
async: false,
url: 'BannerRotativo.aspx/devuelveBanners',
cache: false,
dataType: 'json',
type: "POST",
data: dtoJSON,
contentType: "application/json; charset=utf-8",
success: function(data, textStatus, jqXHR) {
responsedevuelveBanners(data);
},
error: errorResponse
});
});
существуем "devuelveBanners" функцию C#.
C# код:
public static string devuelveBanners()
{
DataReader DR;
DR = listaBanners();
//armaJson creates the Json string from the DataReader.
string strJson = GENERAL.armaJson(DR);
return strJson;
}
public DataReader listaBanners()
{
try
{
string strComando;
sqlCommand SQLC;
DataReader DR;
strComando = "SELECT banner_img FROM PI_Banners";
//sqlCon is the connection, and is open already.
SQLC = new System.Data.SqlClient.SqlCommand(strComando, sqlCon);
SQLC.CommandType = CommandType.Text;
DR = SQLC.ExecuteReader();
return DR;
}
catch (Exception ex)
{
throw ex;
}
}
Когда я разобрать строку JSON назад, и создать изображение:
function responsedevuelveBanners(data)
{
var datos = JSON.parse(data.d);
$("#imgContainer").append("<img src='data:image/jpg;base64," + datos.Rows[0].Row[0].banner_img + "' />");
}
создается образ, но не показывает, потому что он имеет этот адрес:
data:image/jpg;base64,System.Byte[]
Я знаю, что я делаю что-то ужасно неправильно чтобы получить данные json таким образом, но я не знаю, как этого добиться!
Заранее благодарен!
Вам нужно т o вернуть данные изображения как 'Convert.ToBase64String (image_bytes)' (т. строка) –