2016-04-24 3 views
1

Я использую библиотеку FPDF для отображения онлайн-файлов PDF с опцией вывода «I» (которая выводит содержимое в браузер).
Затем мне нужно сохранить некоторые из сгенерированных PDF-файлов на моем сервере (как и опция вывода «F»).Получить и сохранить контент, сгенерированный PHP, используя FPDF

Для того, чтобы сделать это, я написал этот сценарий:

$pdf_data = file_get_contents('https:/HOST/Folder/file.php'); 
    $path =__DIR__.'/Folder/file.pdf'; 
    file_put_contents($path, $pdf_data); 

Это удается создать файл с расширением PDF-файл в каталог, но:
- я получил сообщение об ошибке: «Ошибка Формат: не pdf или поврежден », когда я пытаюсь открыть файл« pdf »,
- Сохраненный файл пуст (?).

Итак, что не так?
Как я могу получить контент, сгенерированный файлом php, и сохранить его как pdf на моем сервере?

+0

file_put_contents генерирует текстовый файл, а не файл PDF. Изменение расширения в pdf также не устанавливает формат –

+0

Хорошо, это первый пункт. Я этого не понимал. Теперь я переключил расширение на .txt, чтобы протестировать скрипт, но сохраненный текстовый файл по-прежнему пуст. Поэтому я думаю, что file_get_contents тоже не работает. – CamilleFF

+0

Просто, чтобы сообщить, что я установил пустой контент, возвращенный файловым_компонентом, установив агент пользователя раньше, например: _ini_set ('user_agent', $ _SERVER ['HTTP_USER_AGENT']); _ – CamilleFF

ответ

2

Окончательный, я забыл этот сценарий и нашел новое решение, которое работает!

Я установил два выхода в мой PHP-код с помощью FPDF, один для отображения файла в Интернете и один для сохранения файла на сервере.
Содержимое, генерируемое кодом PHP, всегда отображается, и я управляю резервной копией PDF со строкой на первом выходе.
Итак, когда мне нужно сделать резервную копию, я использую функцию Jquery для выполнения кода PHP в фоновом режиме и загрузки файла PDF (также работает скрытый iframe).

Под концом моего PHP кода:

<?php 
... 
if (mycondition) {$string='F';} 
else {$string ='I';} 
... 
$pdf->Output(__DIR__.'/../../Folder/file.pdf',$string); // save on the server 
$pdf->Output('file.pdf','I'); // display on the browser 
?> 

Ниже функция JQuery Я использую:

<script type="text/javascript" src="./js/jquery.js"></script> 
<script type="text/javascript"> 
    var phpfile = <?php echo json_encode($Filename); ?>; // the php file to upload 
    function uploadpdf() { 
    $.get(phpfile); 
    return false; } 
</script> 

Надеется, что это поможет!

Смежные вопросы