2011-04-29 2 views
0

웹 응용 프로그램의 입력을 기반으로 다양한 파일 유형 (Excel, PDF, PNG)에 대한 보고서를 생성해야합니다. 이 응용 프로그램은 Apache 웹 서버에서 PHP로 작성됩니다.웹 응용 프로그램에서 pdf, xls, png 파일을 생성하는 올바른 방법

ATM 사용자가 보고서 섹션을 방문하면 데이터베이스에 새 데이터가 제출되고 해당 정보를 기반으로 새 보고서 파일이 생성되는지 확인하는 이벤트를 트리거합니다. 이것은 사용자가 파일이 생성 될 때까지 기다리게하고 (3 ~ 10 초), 전혀 좋은 접근 방법이 아니므로 나에게 줄 수있는 조언이 필요합니다.

+0

지금이 보고서를 만들 때 무엇을 사용하고 있습니까? 너무 오래 걸리면 속도를 높이는 방법을 알아 내기 위해 사용중인 도구/라이브러리를 알아야합니다. –

+0

@ Mark Baker : PHP 파일을 생성하기 위해 PHPExcel을 사용하고 있습니다. 나는 cvs 파일을 생성하는 것이 얼마나 쉬운지를 보았으며 더 싼 접근법을 사용하려고 생각하고있다. –

+0

@Nicolas : 내 질문 편집을위한 질문 : –

답변

2

물론 응용 프로그램과 시스템에 따라 다르지만 일반적으로 PHP 스크립트를 실행하여 정기적으로 보고서를 생성하는 cron 작업이 있습니다. 출력물은 파일 시스템이나 데이터베이스에 저장 될 수 있습니다. 이렇게하면 내 보고서는 사용자가 다운로드하려고 시도 할 때마다 생성되는 것이 아니라 한 번만 생성되며 필요한 경우에만 생성됩니다 (스크립트는 변경 기준에 따라 보고서를 생성해야 하는지를 확인할 수 있습니다. 정기적으로 완전히 새로운 보고서를 생성하도록 설정하십시오.) 정말 간단하게 유지하려면 wget 또는 curl을 사용하여 현재 웹 페이지를 호출하고 웹 서버에 저장된 보고서를 다운로드 할 수있는 새 페이지를 만드십시오.

이 접근법의 유일한 문제점은 사용자가 "부실"보고서 (데이터는 변경되었지만 보고서는 업데이트되지 않음)를 다운로드 할 수 있다는 점입니다. 이것이 실제로 문제가된다면 다른 접근법은 수정 된 데이터를 확인하고 필요에 따라 보고서를 생성하는 백그라운드에서 PHP 스크립트를 실행하는 것입니다.

또 다른 방법은 사용자가 보고서를 다운로드하려고 할 때 보고서를 계속 생성하고 결과를 캐시하는 것입니다. 고유 한 응용 프로그램 특정 기준을 사용하면 캐시 된 보고서가 즉시 다운로드 할 수 있는지 확인하거나 새 보고서를 생성하고 캐시 할 수 있습니다. 새로운 보고서를 주기적으로 생성하여 첫 번째 방법과 결합 할 수도 있지만 사용자가 오래된 보고서를 다운로드하려고 시도하면 즉시 새 보고서를 생성하여 사용자가 3-10 초 동안 기다리게합니다.

궁극적으로 시스템과 응용 프로그램에 따라 다릅니다.

관련 문제