2012-06-07 4 views
0

나는 Perl/CGI, MySQL, Perl 템플릿 툴킷으로 작업하고 있습니다.은 다운로드 가능한 파일 perl-template을 제공합니다.

나는 데이터베이스를 설정하고 일부 펄 모듈은 데이터베이스를 쿼리한다.

펄 모듈에서 나는 해쉬의 해쉬 (hash) 해시를 perl 템플릿 툴킷 (.tt)으로 넘겨주고 그 결과를 웹 페이지에서 렌더링한다.

이제 검색 결과를 탭으로 구분 된 파일로 다운로드하는 옵션을 추가하고 싶습니다. 즉 다운로드 파일 옵션을 제공합니다. 필자는 perl 모듈에 tab-seperated 형식으로 변환하는 서브 루틴을 가지고 있습니다. 해당 서브 루틴 을 호출하여 검색 결과를 탭으로 구분 된 형식으로 변환 할 수 있기를 원합니다. 템플릿 툴킷의 펄 모듈에서 서브 루틴을 호출 할 수 있습니까?

데이터베이스를 다시 쿼리하지 않거나 캐시에 결과를 저장하지 않고 다운로드 가능한 파일을 생성하는 방법을 알아 내려고합니다.

Perl 템플릿이 렌더링하는 데이터 구조 (해시 해시)를 downloadble 파일을 생성 할 수있는 Javascript (추가로 서브 루틴 호출)에 전달할 수 있습니까?

올바른 방법을 제안하십시오. 시간

답변

3

에 대한

덕분에 나는 템플릿 툴킷에 펄 모듈에서 서브 루틴을 호출 할 수 있습니까?

You can 그러나이 문제에 대해서는 의미가 없습니다.

템플릿 기능이 필요하지 않으며 다른 Content-Type 헤더가 필요합니다. 탭으로 구분 된 파일을 만들 때 TT를 사용하지 마십시오.

데이터베이스를 다시 쿼리하지 않거나 캐시에 결과를 저장하지 않고 다운로드 가능한 파일을 생성하는 방법을 알아 내려고합니다.

이를 수행하는 합리적인 방법은 없습니다. 당신이 얻을 수있는 가장 가까운 것은 TT에 의해 생성 된 (TT에 의해) HTML 문서에서 JavaScript로 데이터를 구문 분석하는 것입니다 (탭으로 구분 된 파일을 생성하기 위해 작성한 Perl을 사용하지 않음). 그리고 build the tab separated file on the client, and make it available for download.

데이터베이스를 다시 치기가 더 쉽고 쉽고 안정적입니다.

+0

또 다른 방법은 페이지를 만들 때마다 CSV 파일을 저장하고 다운로드 링크를 제공하는 것입니다. 사용자가 실제로 사용하는 경우 그에게 달려 있습니다. 파일은 한 번만 정리해야하며 개별 사용자의 파일은 서로 겹쳐 쓰지 않도록 개별적으로 이름을 지정해야합니다. – simbabque