if (file_exists("folder/$unique_id.pdf")) {
header('Content-type: application/pdf');
ob_clean(); // Added after reading similar question's answer
flush(); // Added after reading similar question's answer
readfile("folder/$unique_id.pdf");
} else {
$html = "PLACING_MY_HTML_CODE_HERE";
$dompdf = new DOMPDF();
$dompdf->load_html($html);
$dompdf->set_paper("A4");
$dompdf->render();
$output = $dompdf->output();
file_put_contents("folder/$unique_id.pdf", $output);
header('Content-type: application/pdf');
ob_clean(); // Added after reading similar question's answer
flush(); // Added after reading similar question's answer
readfile("folder/$unique_id.pdf");
}
PDF 파일이 없으면 DOMPDF를 사용하여 PDF 파일이 생성됩니다. 파일은 오류없이 생성되어 폴더 내에 저장됩니다. 그러나 가끔 인 경우 생성 된 파일을 읽는 대신 확장자가없고 주로 '다운로드'라는 이름의 파일을 다운로드합니다. 나는 텍스트 편집기에서 파일을 여는 시도하고, 나는 그런 application
같은 일부 헤더, content-type
등생성 된 PDF 파일을 PHP로 읽기 때때로
나중에, SO에서 검색 및 this question보고와 기호를 보려면, 내 코드에서 ob_clean
, flush
을 추가했다. 그러나 여전히 문제는 지속됩니다.
참고 : Adobe Reader 및 Google 크롬을 사용하여 폴더에 저장된 PDF 파일을 열어 확인했습니다. 파일이 완전히 렌더링되고 제대로 저장되었습니다.
편집 : 나는 header
파일에 직접 재 시도
대신 readfile
의. 그리고이 문제는 없습니다.
제안 사항?
'header ('Content-type : application/pdf');'를 PDF 생성 전에 –
으로 이동하여 다운로드하기 전에 PDF 생성에 소비하는 시간을 알아 봅니다. –
if-conditional의 첫 번째 줄에 사용 된 함수가 ** file_exists ** – Vagabond