2013-09-03 3 views
1

Когда я нажимаю кнопку загрузки, вызывается запрос ajax и вызывается функция php HtmlToPDF().Загрузка файла PDF с использованием PHP

Сначала я создам pdf-файл из html-файла, используя FPDF. После этого я хочу загрузить файл pdf.

Код:

function HtmlToPDF() 
    {  
     $fileName = $_POST['fileName']; 
     $file = basename($fileName, ".html"); 
     $pdf=new HTML2FPDF(); 
     $pdf->AddPage(); 
     $fp = fopen("../".$fileName,"r"); 
     $strContent = fread($fp, filesize("../".$fileName)); 
     fclose($fp); 
     $pdf->WriteHTML($strContent); 
     $fullPath = "../Bills/".$file.".pdf";  
     $pdf->Output($fullPath); 

     if (is_readable ($fullPath)) { 
      $fsize = filesize($fullPath); 
      $path_parts = pathinfo($fullPath); 


      header('Content-Description: File Transfer'); 
      header("Content-type: application/pdf"); // add here more headers for diff.  extensions 
      header("Content-Disposition: attachment; filename=\"".$path_parts["basename"]."\""); 
      header('Content-Transfer-Encoding: binary'); // use 'attachment' to force a download    
      header('Expires: 0'); 
      header("Content-length: $fsize"); 
      header('Pragma: public'); 
      header ("Cache-Control: must-revalidate, post-check=0, pre-check=0"); 
      ob_clean(); 
      flush(); 
      echo file_get_contents($fullPath);   
      exit;  
     } 
    } 

формата PDF создан. но я не могу загрузить файл. реакция подобна

% PDF-1.3 3 0 объект <> endobj 4 0 объект <> поток xYMS0WhaɽA) Оль, Rw Ylä! 3 $} г} R9PDdDD (_) YL ~ & $ c 3 zk {, } 4pI4 倒 D D> B m-? 49 | ] 7Ym # H���Tc�8��ӹ!�9�C�L�}?O�O� � � � ��H�,���i�|��G�Q�S���?#R GYB�KR�1�Qҡq��)��Ql�m�% {�/�_�c��XOۆQ ) < Pg} Q e Χ7W ɠ 0e 韉 e .Βb N W 6 ] 4 % pJ Wg ⡞ ƕ yw o ' z 9 V R K # > < f r 6 r |: OEbfn ia ] S ! C < ܅ " J Y} 1R + 2 ��b�e��0Z�4H������i����g\h� %R��p�0��c����ڵ� @ ulW϶ Q VJz Vȋ5 J ! 4: p @ | 0 ! B { X? [F ([ pl G nHn 4 Q o 2 2 ! s ަ c- ? V S [ f & N l & A } ^? P 8 x X $ i ͳry | gUZX0 = Q^WGʮG^8ԀǯydӴ ~ # $ ч] 3 * * Ge endstream endobj 1 0 объект < endobj 5 0 объект < endobj 6 0 объект < endobj 7 0 объект < endobj 2 0 объект < > endobj 8 0 объект < < /Производитель (FPDF 1.52) /Создатель (HTML2FPDF >>http://html2fpdf.sf.net) /CreationDate (D: 20130903060123) > endobj 9 0 объект < < /Тип/Каталог /Страницы 1 0 R /OpenAction [3 0 R/FITH нуль] /PageLayout/OneColumn > endobj Xref 0000000000 65535 F 0000000916 00000 п 0000001304 00000 п 0000000009 00000 п 0000000087 00000 00000 п 01003 00000 п 0000001099 00000 п 0000001200 00000 п 0000001412 00000 п 0000001536 00000 п прицеп < < /размер 10 /Root 9 0 R /информация 8 0 R > startxref %% тысяча шестьсот тридцать девять EOF

Я видел несколько вопросов переполнения стека, связанных с этим. PDF format error with PHP

Но проблема не решена. Пожалуйста, помогите мне ..

+0

Как вы извлечения файла? –

+0

ajax НЕ является ответом на все вопросы –

+0

@Pekka Может у, пожалуйста, объясните? – Nandu

ответ

1

Согласно FPDF документации, вы можете использовать вторую Output() рассуждения

назначение, куда отправить документ. Он может принимать один из следующих значений:

I: отправьте файл в строке браузера. Этот плагин используется, если доступно . Имя, заданное по имени, используется, когда вы выбираете опцию «Сохранить как» в ссылке, генерирующей PDF.

D: отправить в браузер и принудительно загрузить файл с именем по названию.

F: сохранить в локальном файле с именем, указанным по имени (может содержать путь ).

S: вернуть документ в виде строки. имя игнорируется.

Используя D аргумент, он должен заставить скачать, без использования AJAX

Source

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