Отправьте данные изображения Base64 / BLOB от PHP до Javascript - PullRequest
0 голосов
/ 08 апреля 2020

TL; DR

Есть ли способ отправить напрямую используемые данные изображения base64 / BLOB на javascript?

Я пытаюсь отправить массив (содержащий строку & img) для моего Vue компонента из моего page.blade. php, возвращенного из моего контроллера в Laravel.

БОЛЬШЕ ДЕТАЛЕЙ

Я знаю, что проблема в кодировании данных, и json_encode($my_string_data) работает только для UTF-8, но не для данных IMG. json_encode($my_image_data) выдаст ошибку malformed utf-8 characters possibly incorrectly encoded image.

Я делаю 1 запрос, затем 2 запроса БД в моем контроллере и объединяю оба ответа (строка и данные MEDIUMBLOB / img), а затем возвращаю его как массив в мой blade. php, в моем файле blade-сервера компонент vue принимает данные img в качестве реквизита.

Возможные решения Я хочу знать, как:

  1. Как мне сделать эти img-данные напрямую используемыми javascript?
  2. Если # 1 невозможно, как мне преобразовать эти img-данные, непосредственно читаемые с помощью javascript?
  3. Если # 2 нет возможно, как я могу преобразовать эти img-данные JSON -able на json_encode($my_image_data)?

enter image description here

Я только предполагаю, что IMG-данные, возвращаемые базой данных из столбца BLOB, - это Base64, mb_detect_encoding(), так как переменная, содержащая IMG-данные, всегда возвращает false, поэтому я не могу знать, что это такое. Все, что я знаю, должно преобразовать эти данные в UTF-8 или что-нибудь JSON -поддерживаемое для JS использования.

ATM, я все еще пытаюсь найти решение № 3.

1 Ответ

1 голос
/ 08 апреля 2020
 $image = 'yourimage'; 

// Read image path, convert to base64 encoding  
$imageData=base64_encode(file_get_contents($image)); 

// Format the image SRC: data:{mime};base64,{data}; 
$src = 'data: '.mime_content_type($image).';base64,'.$imageData; 

А теперь sr c является urldata и может быть готов к преобразованию в js.

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