DOMpdf. Файл записывает на сервер, но сам файл пуст

#php #wordpress #dompdf

#php #wordpress #dompdf

Вопрос:

Привет, удивительное сообщество slack.

Я использую dompdf 0.8.0 для управления некоторой магией pdf на моем сайте Woocommerce. Я создал функцию, которая отправляет счет в формате PDF по щелчку мыши в браузер, и это работает очень хорошо.

Моя следующая задача — прикрепить счет-фактуру в формате PDF к электронному письму с заказом, и я в значительной степени справился с этим. Однако созданный файл не содержит никакого содержимого.

Мои права доступа к файлам / папкам установлены правильно 755/644, и даже установка папки 777 в корневом каталоге doc не решила проблему с разрешениями.

Я нашел несколько потоков, но, похоже, ничто не соответствует или не решает мою проблему.

Вот мой код:

 require_once 'dompdf/autoload.inc.php';
$dompdf = new DompdfDompdf();
$dompdf->set_option('isHtml5ParserEnabled', true);
$dompdf->load_html($content);
$dompdf->render();
$uploadspath = wp_upload_dir();     
$upload = file_put_contents($uploadspath['basedir'].'/'.$filename, $content);
  

Путь, в который я пытаюсь записать, выглядит следующим образом (выгружается из $uploadspath[‘basedir’].’/’.$filename)
/var/www/designcuts/wp-content/uploads/1524762.pdf

Комментарии:

1. Что $output должно быть? Это то, что вы записываете в файл, но вы не показали нам, где вы бы заполнили эту переменную в первую очередь.

2. Ах, вы помогли мне понять, что я полный идиот. Спасибо. Однако теперь файл записывается, и теперь файл имеет размер, я получаю следующую ошибку. Тип файла HTML document (текст / html) не поддерживается

3. Когда я открываю файл в текстовом редакторе, все, что я получаю, это HTML. pdf-файл не был отрисован.

4. Вам нужно перехватить то, что render метод в противном случае выводил бы непосредственно в браузер. Проверьте github.com/dompdf/dompdf/wiki/Usage#php-example-with-ob_start для примера, как это сделать, используя буферизацию вывода PHP.