Назначить строку Base64 для изображения в JavaScript - PullRequest
0 голосов
/ 31 декабря 2018

Я уже потратил много времени на основную проблему, у меня есть представление бритвы .cshtml, которое имеет модель типа DataTable, и у этого объекта данных есть несколько таблиц TableRows с одним столбцом, в котором хранится байтовый массив изображения.Как я могу назначить это значение модели для элемента изображения в представлении.это то, что я до сих пор придумал.

 var binaryData = @Convert.ToBase64String(Model.Rows[0][0] as Byte[]);
    var img = document.getElementById('ImgEle')
                      .setAttribute('src', "data:image/jpg;base64," + binaryData);

Я получаю эту ошибку в окне консоли Chrome: Uncaught SyntaxError: Invalid regular expression flags

как я могу решить эту проблему?

Редактировать:

Благодаря ответу @hiltononline, это код, с которым я закончил, и он отлично работает

var binaryData='@Convert.ToBase64String(Model.Rows[0][0] as Byte[])';
var img = document.getElementById("ImgEle");
img.setAttribute("src", "data:image/jpg;base64," + binaryData);

Надеюсь, это кому-нибудь поможет.

Ответы [ 2 ]

0 голосов
/ 31 декабря 2018

Значение binaryData необходимо заключить в одинарные кавычки, чтобы рассматривать как строку:

var binaryData='@Convert.ToBase64String(Model.Rows[0][0] as Byte[])';

Альтернативой может быть вставка значения модели в setAttribute.непосредственно метод:

var img = document.getElementById("ImgEle");
img.setAttribute("src", "data:image/jpg;base64,@Convert.ToBase64String(Model.Rows[0][0] as Byte[])");

Кроме того, в зависимости от того, как хранятся данные, может не потребоваться повторное декодирование.Вы можете дважды проверить правильность байтового массива, используя онлайн-декодер, такой как CodeBeautify base64-to-image-converter

0 голосов
/ 31 декабря 2018

Я знаю только о том, как отобразить строку изображения base64 в виде тега в javascript, поэтому, если ваша ошибка только на этом уровне, хорошие новости - в противном случае я не могу действительно помочь вам с первой строкой (binaryData):

var binaryData = @Convert.ToBase64String(Model.Rows[0][0] as Byte[]);
var img = document.getElementById("ImgEle");
img.setAttribute("src", "data:image/jpg;base64," + binaryData);

Я думаю, вы просто забыли имя атрибута (src), который вы хотели установить с помощью setAttribute, и что вы перепутали с присвоением переменной img.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...