@WalkersRei

Не отображается изображения сгенерированный DOMPDF?

Собственно,проблема не отображается сгенерированный изображения и не только в DOMPDF. Было использовано 4 разных способа
1. Указав путь вместо https://demo.ru/sentmail/dompdf/qr_6fa7fdbe0e5cbd1... на/sentmail/dompdf/qr_6fa7fdbe0e5cbd16a19daf035f967356.jpg
2. Указав путь до файла с помощью $_SERVER['DOCUMENT_ROOT]
3. Указать путь с помощью URL https://demo.ru/sentmail/dompdf/qr_6fa7fdbe0e5cbd1...
4. Преобразования изображения с помощью Base64 в PHP
Но ничего не помогло
<?php

    $host = '1s';  // Хост, у нас все локально
    $user = '1';    // Имя созданного вами пользователя
    $pass = '1'; // Установленный вами пароль пользователю
    $db_name = '1';   // Имя базы данных
    $link = mysqli_connect($host, $user, $pass, $db_name); // Соединяемся с базой
    mysqli_query($link, "SET NAMES utf8");

$qr_id = $_GET['qr_id']; 
$image = $_GET['image'];	


  $check_sql = mysqli_query($link, 'SELECT * FROM `users` WHERE `qr_id`= "'.$qr_id.'"');
    while ($check = mysqli_fetch_array($check_sql)) {
            $email = $check['email'];
            $name = $check['name'];
            $phone = $check['phone'];
            $qr = $check['qr_id'];
            $promo = $check['promo'];
            $send = $check['send'];
            $ref = $check['ref'];
        }

    if (!empty($promo)) {
      $check_promo = mysqli_query($link, 'SELECT * FROM `promo` WHERE `promo` = "'.$promo.'"');
        while ($give_kraksa = mysqli_fetch_array($check_promo)) {
          $kraska = $give_kraksa['give'];
        }
    }
    if (!empty($ref)) {
      $check_ref = mysqli_query($link, 'SELECT * FROM `ref` WHERE `ref` = "'.$ref.'"');
        while ($give_kraksa_ref = mysqli_fetch_array($check_ref)) {
          $kraska_ref = $give_kraksa_ref['kraska'];
        }
    }  

          //qr code start
          include $_SERVER['DOCUMENT_ROOT'].'/phpqrcode/qrlib.php';

          ob_start();
          $img = QRcode::png($qr_id, false, QR_ECLEVEL_L, 6, 2);

          $image_content = ob_get_contents();
          ob_end_clean();

          header("Content-type: text/html");

          $qr_image = base64_encode($image_content);
          $src = 'data:image/jpeg;base64,'.$qr_image;
          $src1 = str_replace(""," ",$src);
          //qr code end*/    

            $tempDir = $_SERVER['DOCUMENT_ROOT'].'sentmail/dompdf/'; 
            $codeContents = $qr_id.'.jpg';
            $fileName = $qr_id.'.jpg'; 
         
            $pngAbsoluteFilePath = $tempDir.$fileName; 
            $urlRelativeFilePath = $tempDir.$fileName; 
                QRcode::png($qr_id, $pngAbsoluteFilePath); 
                echo 'Файл создан'; 
                echo '<hr />';

    $html = '<html><meta http-equiv="content-type" content="text/html; charset=utf-8" /><body>';
    $html .= 'Имя: '.$name.'<br>';
    $html .= 'Телефон: '.$phone.'<br>';
    $html .= 'E-mail: '.$email.'<br>';
    if (!empty($kraska)){
        $html .=  'Бесплатных пакетов красок: '.$kraska.'<br>';
        $html .=  'Промокод: '.$promo.'<br>';
    }elseif(!empty($kraska_ref)) {
        $html .=  'Бесплатных пакетов красок: '.$kraska_ref.'<br>';
        $html .=  'Реферальная ссылка:https://www.demo.fun/?ref='.$ref.'<br>';
    }

        
        $url1 = preg_replace('!http(s)?://' . $_SERVER['HTTP_HOST'] . '/!', '/', 'https://'.$_SERVER['HTTP_HOST'].'/sentmail/dompdf/'.$fileName.'');
        $url2 = $_SERVER['DOCUMENT_ROOT'].'sentmail/dompdf/'.$qr_id.'.jpg';
        $url3 = 'https://'.$_SERVER['HTTP_HOST'].'/sentmail/dompdf/'.$fileName;
        $url4 = $src1;
        $url5 = 'http://'.$_SERVER['HTTP_HOST'].'/sentmail/dompdf/'.$fileName;
        $html .=  '<img src="'.$url5.'" width="300" height="300">';
        $html .= '</body></html>';
        include $_SERVER['DOCUMENT_ROOT'].'/sentmail/dompdf/dompdf_config.inc.php';              
        $dompdf = new DOMPDF();// Создаем обьект
        $dompdf->load_html($html); // Загружаем в него наш html код
        $dompdf->set_Paper("A4", "portrait");
        $dompdf->render(); // Создаем из HTML PDF
        //$dompdf->stream(''.$qr_id.'.pdf'); // Выводим результат (скачивание)
        $data = $dompdf->output();
        // Сохраняем PDF файл
        echo $html;
        file_put_contents($_SERVER['DOCUMENT_ROOT'].'/sentmail/'.$qr_id.'.pdf', $data);
  • Вопрос задан
  • 517 просмотров
Решения вопроса 1
@WalkersRei Автор вопроса
В исходном варианте все отображается5de09de02c024040625001.png

Собственно нашел исправления, просто использовал внешний генератор QR изображения
chart.googleapis.com/chart?chs=150x150&cht=qr&chl=Hello%20world&choe=UTF-8
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
1) Включите вывод ошибок и варнингов, будет хоть понятно что происходит
2) Выведите var_dump($qr_image);, вполне возможно что там нифига нет.
3) Вообще достаточно проверить есть ли файл который вы берете - file_exists($path_to_file);
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы