Задать вопрос
@freeeeez

Как подгрузить изображение через jQuery?

Необходимо заменить номера на сайте картинками. Подключил Intervention Image, все работает, номер выводится картинкой. Теперь его надо по клику на ссылку "Показать номер" подгрузить. Загружаю:
$('.phone-loader').on('click',function (e) {
e.preventDefault();
$.ajax({
url:"/ajax/getPhone",
type:"POST",
headers: {'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')},
data:{ 'id': $(this).data('id') },
success: function(data){
$('#main-phone').attr('src', 'data:image/jpeg;base64,' + data);
}
});
});

Получаю data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==

Но картинка не загружается. Пробовал и PNG и менять c base64_encode - не работает. В чем причина?
  • Вопрос задан
  • 331 просмотр
Подписаться 1 Оценить 1 комментарий
Решения вопроса 1
@freeeeez Автор вопроса
Как обычно, задал вопрос и потом сам нашел решение.
Ошибка была в том, что data:image/png;base64, я подставлял в jQuery, а надо было сразу из контроллера возвращать ответ:
$base64 = 'data:image/png;base64,' . base64_encode($img); return $base64;

, а в jQuery в ответе вставлять просто:
$('#phone').html('<img src="' + data+'" />');
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@GrimJack
Онлайн декодер нормально раскодировал, только я не задавал ему формат файла и получил внутри src атрибута это:
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxglj
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
18 янв. 2025, в 10:04
50000 руб./за проект
18 янв. 2025, в 09:18
5500 руб./за проект
18 янв. 2025, в 07:20
50000 руб./за проект