|
| session_start og downloade fil Fra : Peter Henriksen |
Dato : 08-07-07 00:31 |
|
Når jeg starter sessions før jeg sender en fil til browseren bliver
filnavnet f.eks. "test_php" samt alt i parameterlisten.
Hvis jeg undlader at starte sessions bliver filnavnet readme.pdf
Jeg har forsøgt med kombinationer af ob_start(), ob_end_clean() mm uden
held.
Er der en måde jeg kan starte sessions på og alligevel sende korrekt
filnavn.
<?php
session_start();
header ("Content-type: application/pdf");
header ('Content-Disposition: attachment; filename="readme.pdf');
readfile ("readme.pdf");
?>
| |
Martin van de Belt (09-07-2007)
| Kommentar Fra : Martin van de Belt |
Dato : 09-07-07 12:28 |
|
"Peter Henriksen" <peter.henriksen@yahoo.xxx> schreef in bericht
news:469021ed$0$90270$14726298@news.sunsite.dk...
> Når jeg starter sessions før jeg sender en fil til browseren bliver
> filnavnet f.eks. "test_php" samt alt i parameterlisten.
>
> Hvis jeg undlader at starte sessions bliver filnavnet readme.pdf
>
> Jeg har forsøgt med kombinationer af ob_start(), ob_end_clean() mm uden
> held.
>
> Er der en måde jeg kan starte sessions på og alligevel sende korrekt
> filnavn.
>
>
>
> <?php
>
> session_start();
>
> header ("Content-type: application/pdf");
> header ('Content-Disposition: attachment; filename="readme.pdf');
Er den ikke forkert?
Prøv
header ("Content-Disposition: attachment; filename=readme.pdf");
>
> readfile ("readme.pdf");
>
> ?>
>
Med venlig hilsen,
Martin van de Belt
http://www.webmastere.dk
| |
Peter Henriksen (09-07-2007)
| Kommentar Fra : Peter Henriksen |
Dato : 09-07-07 21:34 |
|
>> header ("Content-type: application/pdf");
>> header ('Content-Disposition: attachment; filename="readme.pdf');
> Er den ikke forkert?
Jo
header ('Content-Disposition: attachment; filename="readme.pdf"');
eller din
> header ("Content-Disposition: attachment; filename=readme.pdf");
Der er dog ingen forskel :-/
Det hele afgøres af om sessions startes eller ej.
Selvom jeg tømmer alt muligt header gejl vil den stadig ikke hente PDF'en
korrekt.
| |
Martin (11-07-2007)
| Kommentar Fra : Martin |
Dato : 11-07-07 16:17 |
|
Peter Henriksen wrote:
>>> header ("Content-type: application/pdf");
>>> header ('Content-Disposition: attachment; filename="readme.pdf');
>> Er den ikke forkert?
>
> Jo
>
> header ('Content-Disposition: attachment; filename="readme.pdf"');
>
> eller din
>
>> header ("Content-Disposition: attachment; filename=readme.pdf");
>
> Der er dog ingen forskel :-/
>
> Det hele afgøres af om sessions startes eller ej.
> Selvom jeg tømmer alt muligt header gejl vil den stadig ikke hente PDF'en
> korrekt.
Den ene header er desværre langt fra nok
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/force-download");
header('Content-Transfer-Encoding: Binary');
header('Content-length: '.filesize($file));
header('Content-disposition: attachment; filename='.$title);
readfile($file);
Her er de headers som jeg sender med ved download.
Desuden så skal alle sjove bogstaver i title fjernes/ændres
Jeg bruger dette array i en str_replace
" "=>"_",
"À" => "A",
"Â" => "A",
"Ä" => "A",
"Æ" => "AE",
"È" => "E",
"Ê" => "E",
"Ì" => "I",
"Î" => "I",
"Ð" => "D",
"Ò" => "O",
"Ô" => "O",
"Ö" => "O",
"Ø" => "O",
"Ú" => "U",
"Ü" => "U",
"à" => "a",
"â" => "a",
"ä" => "a",
"æ" => "ae",
"è" => "e",
"ê" => "e",
"ì" => "i",
"î" => "i",
"ð" => "o",
"ò" => "o",
"ô" => "o",
"ö" => "o",
"ø" => "o",
"ú" => "u",
"ü" => "u",
"Á" => "A",
"Ã" => "A",
"Å" => "A",
"Ç" => "C",
"É" => "E",
"Ë" => "E",
"Í" => "I",
"Ï" => "I",
"Ñ" => "N",
"Ó" => "O",
"Õ" => "O",
"Ù" => "U",
"Û" => "U",
"Ý" => "Y",
"ß" => "B",
"á" => "a",
"ã" => "a",
"å" => "a",
"ç" => "c",
"é" => "e",
"ë" => "e",
"í" => "i",
"ï" => "i",
"ñ" => "n",
"ó" => "o",
"õ" => "o",
"ù" => "u",
"û" => "u",
"ý" => "y",
"ÿ" => "y",
"\\"=>"_",
"´"=>"",
"/"=>"_",
"."=>""
| |
Martin (11-07-2007)
| Kommentar Fra : Martin |
Dato : 11-07-07 16:19 |
|
Martin wrote:
> Den ene header er desværre langt fra nok
>
> 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/force-download");
> header('Content-Transfer-Encoding: Binary');
> header('Content-length: '.filesize($file));
> header('Content-disposition: attachment; filename='.$title);
> readfile($file);
>
> Her er de headers som jeg sender med ved download.
> Desuden så skal alle sjove bogstaver i title fjernes/ændres
og lige til at gøre det endnu mere besværligt, så læste jeg somewhere
(kan ikk huske hvor) så går zlib ind og ødelægger downloadingen så
derfor kører jeg altid lige en
if(ini_get('zlib.output_compression'))
ini_set('zlib.output_compression', 'Off');
| |
|
|