Экспортируйте более одного PDF-файла, сгенерированного на лету, в виде zip-файла с использованием инфраструктуры Symfony - PullRequest
0 голосов
/ 20 октября 2010

Я сейчас работаю над приложением symfony, которое должно иметь возможность выводить некоторые документы в формате pdf, что совсем не проблема при использовании TCPDF.

Сейчас я пытаюсь сгенерировать zip-файл, содержащийодин или несколько из этих PDF-файлов генерируются на лету.В основном я делаю (используя php´s) zip-библиотеку:

1.) Создайте новый zip-архив.2.) Добавьте все PDF-файлы 3.) Выведите сгенерированный zip.

Странно то, что это работает при использовании некоторых демонстрационных pdf-файлов на другом сервере.Однако, когда я пытаюсь экспортировать свои собственные документы (специфицированные по URL, такие как url_dor ('documents / pdf? Id / 1')), страница просто загружается вечно, пока я не достигну максимального времени ...

Если честно, я понятия не имею, почему это не работает.Любая помощь с благодарностью!

Ответы [ 3 ]

0 голосов
/ 15 ноября 2010

Попробуйте использовать очень маленькие PDF-файлы при тестировании и, если проблема по-прежнему, задайте для переменной тайм-аута PHP большее значение, чтобы запускать тесты.

0 голосов
/ 04 августа 2011

Вот мой код внутри класса действий:

$this->setLayout(false);
$tmpFileName = tempnam("/tmp", "some_prefix_");
$zip = new ZipArchive();
$zip->open($tmpFileName, ZipArchive::CREATE);
foreach ($files as $file) {
    $real_file = $file->getAbsoluteFilePath();
    $zip->addFile($real_file, 'sub_folder_name/' . $file->getTitle() . '.pdf');
}
$zip->close();
$this->getResponse()->clearHttpHeaders();
$this->getResponse()->setContent(file_get_contents($tmpFileName));
unlink($tmpFileName);
$this->getResponse()->setHttpHeader('Content-Type', 'application/zip');
$this->getResponse()->setHttpHeader('Content-Disposition', 'attachment; filename=archive_name.zip');
return sfView::NONE;
0 голосов
/ 20 октября 2010

Что ж, время, необходимое для архивирования PDF-файлов (или любого файла), будет зависеть от размера и количества этих PDF-файлов. Итак, первый вопрос, который вы должны задать, это сколько времени потребуется для их обработки?

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