Мы преследуем это, начавшееся в апреле на рабочем сервере. Все было в порядке с нашим приложением, пока клиент не сообщил, что PDF-файлы больше не отображают изображения.
Наш PDF-файл создается с помощью рендеринга HTML. Когда отображается рендеринг HTML, изображение отображается правильно. Также изображение отображается правильно, если URL-адрес изображения, указанный в mPDF, копируется и вставляется в новую вкладку.
Однако … Если мы загрузим изображение из РАЗЛИЧНОГО ДОМЕНА, изображение будет отображено правильно. загрузка изображения через абсолютный путь, относительный путь или путь URL-адреса приводят к этой ошибке:
Ошибка mPDF: Ошибка IMAGE ( http://img.ruphp.com/php/logo.gif ): Не удалось найти файл изображения
Но, поскольку вы увидите, что URL-адрес логотипа работает при вставке. Разрешения на файлы были протестированы (именно поэтому в корневом каталоге) стандартными и до 777. Сервер является сервером Linux в обоих случаях, которые мы видели до сих пор.
HTML-код, который отображает логотип:
<div id="logo_wrapper" class="left"> <img width="107" height="76" src="<?php echo base_url('logo.gif'); ?>" /> </div>
При реальной потере с этим и она начинает влиять на все больше и больше клиентов.
Любая помощь с благодарностью получила.
ОБНОВИТЬ
Изображение отображает, если код рендеринга и изображение находятся в одном каталоге, и мы НЕ используем абсолютный путь, например.
<img width="107" height="76" src="logo.gif" />
Сегодня я столкнулся с этой проблемой. Моя проблема заключалась в том, что имя домена, которое я использовал, не возвращалось к серверу при доступе с сервера. Я добавил запись в файл hosts на сервере, и изображения начали показываться.
Ваш эквивалентный хост-файл, в котором будет зафиксирована моя проблема:
127.0.0.1 www.aibsonline.co.uk
Или иначе убедитесь, что http://www.aibsonline.co.uk разрешает серверу в DNS, который использует ваш сервер.
Похоже, что mPDF обращается к изображениям как к веб-клиенту cURL, поэтому DNS на сервере необходимо правильно настроить, чтобы ссылаться на себя.
С той же проблемой я обнаружил, что get_headers () возвращает:
"HTTP/1.1 412 Precondition Failed"
Поставщик говорит, что это связано с веб-брандмауэром, потому что запрос был плохо сформирован, а user_agent не установлен.
ini_set('user_agent', 'Mozilla/5.0');
решил проблему.
В плагине WordPress, использующем mpdf, mpdf не использует классы WordPress http и не устанавливает user_agent. Я решил это, добавив в mu-plugins:
global $wp_version; ini_set('user_agent',apply_filters( 'http_headers_useragent', 'WordPress/' . $wp_version . '; ' . get_bloginfo( 'url' ) ));
У меня была аналогичная проблема, и я решаю следующее:
1. Проверить, установлена ли библиотека gd и включить ее в файле php ini. Если не установить gd-библиотеку.
2.Поверните переменную отладки
$mpdf = new mPDF(); $mpdf->showImageErrors = true;
3. Поверните взаимоисключающий абсолютный / относительный путь для изображения
<img src="http://img.ruphp.com/php/image.jpg"> <img src="./directory/image.jpg">
Надеюсь это поможет.
Просто убедитесь, что у вас есть связанные с изображениями функции в файле PDF-файла. Как parsejpg, parsepng, parsegif и т. Д. …
Я столкнулся с тем же вопросом. mPDF запускал DOG SLOW и в итоге просто отображал ошибку «Can not find image file». После
Я обнаружил, что файл изображения, о котором идет речь, был каким-то образом поврежден. Я загрузил изображение на свой локальный компьютер, открыл его с помощью редактора изображений (в этом случае Paint.NET), повторно сохранил его как .gif-файл и снова загрузил его на сервер. Казалось, это исправить. Ваш пробег мой варьируется.
Кроме того, для чего я должен был использовать images/image.gif
вместо пути файла /images/image.gif
.