Avatar billede bhn.314 Nybegynder
26. april 2006 - 14:16 Der er 9 kommentarer og
1 løsning

Generer pdf-fil via php. IE kan ikke håndtere dette

Jeg har en side hvor brugerne klikker på en knap, php genererer en pdf-fil og brugeren får denne. Problemet er bare at IE ikke kan håndtere det at der requestes en .php, men returneres en .pdf-fil. Jeg gør følgende:

Script
<?
$name="doc.pdf";
$data = "Bla. bla. bla."; //eksempeldata

header('Content-Type: application/pdf');
header('Content-Length: '.strlen($data));
header('Content-disposition: inline; filename="'.$name.'"');
?>
Avatar billede coderdk Praktikant
26. april 2006 - 14:51 #1
Prøv med:

header('Content-disposition: attachment; filename="'.$name.'"');
Avatar billede bhn.314 Nybegynder
26. april 2006 - 14:55 #2
Har prøvet og det virker ikke....
Avatar billede coderdk Praktikant
26. april 2006 - 15:13 #3
Kører du apache og har PATH_INFO slået til? For så kan du lave dine links sådan:

http://example.dk/dir/script.php/doc.pdf

Det må IE da kunne finde ud af - Jeg vil lige nævne at det virker hos mig, IE spørger om jeg vil gemme filen med det navn jeg har angiveet i filename
Avatar billede duejensen Nybegynder
26. april 2006 - 17:50 #4
Du har forhåbentligt meget mere kode, end det du har vist her ?

Koden til generering af pdf-filen mangler helt, og outputtet fra genereringen skal også lige outputtes.
Avatar billede bhn.314 Nybegynder
28. april 2006 - 14:36 #5
Ja, der er mere kode, selvfølgelig. Jeg outputter vha. echo $data;
Avatar billede bhn.314 Nybegynder
28. april 2006 - 14:36 #6
Avatar billede duejensen Nybegynder
28. april 2006 - 18:50 #7
Har du en pdf-fil med resultatet i, eller SKAL den genereres fra gang til gang ?

Dit oprindelige forsøg med 3*gange header virker jo bestemt ikke, $data er ikke i pdf-format, og hvis $data var i pdf-format, ville der jo være binære data i- hvilket ville få strlen($data) til at give forkerte tal.
Avatar billede horsmark Nybegynder
28. april 2006 - 18:56 #8
prøv evt dette ..

<?php

$filename = "min_pdf.pdf";

// required for IE, otherwise Content-disposition is ignored
if(ini_get('zlib.output_compression'))
  ini_set('zlib.output_compression', 'Off');

header("Pragma: public"); // required
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private",false); // required for certain browsers
header("Content-Type: application/pdf");
// change, added quotes to allow spaces in filenames, by Rajkumar Singh
header("Content-Disposition: attachment; filename=\"".$filename."\";" );
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".filesize($filename));
readfile("$filename");
?>
Avatar billede bhn.314 Nybegynder
02. maj 2007 - 14:17 #9
horsmark: Smid et svar for point
Avatar billede horsmark Nybegynder
02. maj 2007 - 14:41 #10
okidoki her :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester