2012-07-08 2 views
1

html2fpdf로 pdf 파일을 생성 중입니다.pdf 작성 후 정리

$pdf = new HTML2FPDF(); 
$pdf->HTML2FPDF("P","mm","A4"); 
$pdf->AddPage(); 
$pdf->WriteHTML($html); 
$pdf->output('sample.pdf'); 

이 샘플은 훌륭합니다. 하지만 :

출력 후 PDF를 어떻게 삭제합니까? 난 그냥 내 도구에 링크를 갖고 싶습니다, 사용자는 pdf를 다운로드 할 수 있고 그 후에 그것은 서버에서 삭제 될 것입니다.

PDF를 생성 한 후 어떻게 정리할 수 있습니까?

답변

3

당신은 unlink()

전화 생성 된 PDF 파일의 전체 경로 (또는 그 문제에 대한 모든 파일)이 함수 호출 PHP의 파일 삭제 기능을 사용할 수 있으며, PHP는 해당 파일을 삭제합니다.

http://php.net/manual/en/function.unlink.php


당신은 반드시 사용자가 다운로드 한 후 즉시 파일을 삭제 할 필요가 없습니다. 생성 된 모든 파일을 하나의 중앙 폴더에 넣고 cron 작업에서 이전 파일을 단순히 제거하는보다 일반적인 정리 스크립트를 실행할 수 있습니다.

한 가지 방법이 될 수있다 -

  • scandir()를 사용하여 폴더의 내용을 검색합니다.
  • foreach 루프로 반복하십시오.
  • filemtime()을 사용하여 각 파일의 생성 시간을 검사하십시오.
  • 시간이 한 시간 이상 지난 경우 unlink()을 사용하여 파일을 삭제하십시오. 당신이 PDF는 당신의 PHP 코드 내에서 파일을 직접 생성되기 때문에

, 나는 권한 고려 사항을 언급하지 않았다. 여기에 파일 시스템에 대한 모든 작업을 수행하기 위해 PHP가 올바른 파일 시스템 권한을 가져야한다고 언급하는 것이 좋습니다. 파일 시스템을 변경할 수있는 올바른 권한이있는 것으로 가정하는 것이 안전하지만 다른 스크립트에서이 unlink() 함수를 사용하려는 경우 올바른 파일 사용 권한이 설정되어 있는지 확인하십시오. .

1

당신은 출력 함수에 'F'플래그를 추가하지 않을 경우 모든 서버에 저장에는 PDF 파일이 없을 것 : 실제 PDF처럼 경우

$pdf->output('sample.pdf', 'F'); //stores PDF on server 

자체가 동작하는 스크립트를 파일. 따라서 스크립트에 대한 링크를 만드는 것은 PDF가 요청 될 때마다 PDF가 작성된다는 점을 제외하고는 PDF에 대한 링크와 같습니다. application/pdf로는 content-type 응답 헤더를 설정해야하는 PDF의 브라우저에게 :

content-type: application/pdf 

이 방법은 broser가이 URL은 .php로 끝나는 경우에도 PDF가 있다고 알고있다. 재 작성 엔진을 사용하여 pdf 또는 다른 어떤 것으로 끝낼 수 있습니다.

헤더를 보내는 것은 fpdf/tcpdf에 의해 수행됩니다. 즉, 서버에 PDF 파일이 저장되어 있지 않기 때문에 정리 작업을 수행 할 필요가 없습니다.

이름이 무엇인지 궁금하다면 pdf 파일을 저장하십시오. 저장시 권장되는 이름은 sample.pdf입니다.

참조 :

를 보내는 것이있다