Mi è capitato ultimamente di dover far scaricare un file pdf. Sia ben chiaro scaricare direttamente e non farlo aprire all’interno di un browser. Questo perché? Spesso (sopratutto con i vecchi browser come ie6 e ie7) quando si deve far scaricare un file pdf questo risulta illeggibile. In problema non è il file che è corrotto ma bensì il browser che ha un bug. Onde evitare problemi si preferisce far scaricare direttamente il file interessato, che potrebbe essere un file pdf o un cvf o un qualsiasi altro file che potrebbe aprirsi in maniera non corretta all’interno del browser.
Per risolvere questo problema PHP ci viene incontro. Come? Andando a fare un rewrite dell’estesione del file interessato. Supponiamo abbia il file nome.pdf da far scaricare; andremo ad aprire un file con estensione php per poi risostituirno con l’estensione originale. In questo modo il file verrà scaricato direttamente.
<a href=
"/pdf/nome.php"
target=
"_blank"
title=
"Clicca per saperne di più »"
>
<?php
$file=$_SERVER[
'PHP_SELF'
];
$pieces = explode(
"/"
, $file);
$pieces_ok= array_reverse($pieces);
$array_file= explode(
"."
, $pieces_ok[
0
]);
$nome=$array_file[
0
];
// We'll be outputting a PDF
header(
'Content-type: application/pdf'
);
// It will be called downloaded.pdf
header(
'Content-Disposition: attachment; filename="'
.$nome.
'.pdf"'
);
// The PDF source is in original.pdf
readfile($nome.
'.pdf'
);
?>
Altri appunti
Dati societari obbligatori nei siti internet
Forse non tutti sanno che… per le società di capitali (s.p.a., s.r.l. e…
Restyling ed essenzialità grafica
Oggi, una giornata come tante altre, mettendomi a lavorare accendo il…