предоставить загружаемый файл perl-template

Я работаю с Perl/CGI, MySQL, набором инструментов Perl Template.

У меня есть настроенная база данных и несколько модулей Perl для запросов к базе данных.

Из модулей perl я передаю структуру данных (хэш хэшей) в набор инструментов шаблона perl (.tt), который отображает результаты на веб-странице.

Теперь я хотел бы добавить возможность загрузки результатов поиска в файл с разделителями табуляции; то есть предоставить вариант загрузки файла. У меня есть подпрограмма в моем модуле perl для преобразования в формат с разделением табуляцией. Я хочу иметь возможность вызывать эту подпрограмму для преобразования результатов поиска в формат, разделенный табуляцией. Могу ли я вызвать подпрограмму из модуля perl в наборе инструментов Template?

Я пытаюсь понять, как создать загружаемый файл без повторного запроса к базе данных или без сохранения результатов в CACHE.

Есть ли способ передать структуру данных (хэш хэшей), которую отображает шаблон Perl, в Javascript (который далее вызывает подпрограмму), который затем может создать загружаемый файл?

Подскажите правильный подход.

Спасибо за ваше время


person Sashi Kiran Challa    schedule 07.06.2012    source источник


Ответы (1)


Могу ли я вызвать подпрограмму из модуля perl в наборе инструментов Template?

Можно, но для этой проблемы это не имеет смысла .

Вам не нужны какие-либо возможности шаблонов, и вам нужен другой заголовок Content-Type. Не используйте TT при создании файла, разделенного табуляцией.

Я пытаюсь понять, как создать загружаемый файл без повторного запроса к базе данных или без сохранения результатов в CACHE.

Нет никакого разумного способа сделать это. Самое близкое, что вы могли бы получить, - это проанализировать данные из сгенерированного (с помощью TT) HTML-документа с помощью JavaScript (не используя Perl, который вы написали для создания файла, разделенного вкладками), а затем создайте на клиенте файл, разделенный табуляцией, и сделайте его доступным для загрузки.

Было бы проще, легче и надежнее просто снова попасть в базу данных.

person Quentin    schedule 07.06.2012
comment
Другой способ — сохранять CSV-файл (назовем его так) каждый раз при создании страницы и предлагать ссылку для скачивания. Если пользователь действительно использует это, зависит от него. Файлы необходимо время от времени очищать, а файлы отдельных пользователей должны иметь индивидуальные имена, чтобы они не перезаписывали друг друга. - person simbabque; 07.06.2012