Динамические файлы для phpmailer с использованием dompdf

Я создаю pdf-файл, используя dompdf, имя файла которого постоянно меняется, поскольку я назначил переменную в потоке вывода dompdf, и это имя файла всегда остается уникальным.

Я хочу прикрепить файл к моему письму, где я использую phpmailer.

Проблема: можно правильно прикрепить файл, если я назначу определенное имя файла в phpmailer как статический файл (с назначенным конкретным именем), но не получается для динамических файлов (используя переменную, как показано ниже). Здесь $attach — моя переменная php для имени файла.

Попробуйте код ниже:

$dompdf->stream($attach);//Code for dompdf

$mail->AddAttachment('C:\Downloads\$attach.pdf');  //code for phpmailer to attach file

person sidd    schedule 15.03.2013    source источник


Ответы (1)


То, что я сделал, похоже на это..........

       I got all my html code in the following variable called `$html`.Then i followed below procedure.
$dompdf->load_html($html);    
$dompdf->render();
$pdf = $dompdf->output();
$file_location will have dynamic file name.
file_put_contents($file_location,$pdf);

Теперь используйте эту переменную $file_location для прикрепления имени файла к почтовой программе php. Это вам нужно написать в том же файле php, где вы создаете pdf.

person Venkata Krishna    schedule 15.03.2013
comment
Привет, Венкат, Все еще не повезло!! Пробовал ниже. FOR DOMPDF:$dompdf = new DOMPDF(); $dompdf-›load_html($html); $dompdf-›render(); $pdf = $dompdf-›output(); file_put_contents($file_location,$pdf); И НИЖЕ КОД ДЛЯ PHPMAILER: $mail->AddAttachment ($file_location); - person sidd; 15.03.2013
comment
что вы получаете в $file_location - person Venkata Krishna; 15.03.2013
comment
Привет, Венкат, попробовал это $pdf = $dompdf-›output(); file_put_contents($file_location,$pdf); $mail-›AddStringAttachment($pdf, attach.pdf); и теперь работает нормально :). Большое спасибо!! - person sidd; 15.03.2013
comment
Привет, венкат, просто хотел знать .. Знаете ли вы об этой ошибке. «Невозможно передать pdf: заголовки уже отправлены», получая это в dompdf - person sidd; 15.03.2013
comment
@sidd обычно указывает, что PDF-файл был обработан, и dompdf пытается отправить его в браузер. Сообщение означает, что что-то еще в коде уже отправило контент и не позволяет dompdf устанавливать заголовки типа контента. - person BrianS; 16.03.2013
comment
У меня есть решение для этого! $dompdf-›load_html($html); $dompdf-›render(); //$dompdf-›поток($PNR); $pdf = $dompdf-›output(); file_put_contents($file_location,$pdf); @brian и venkat, спасибо за ваш ценный ответ - person sidd; 16.03.2013