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
CSS3 – Il colore nella selezione
Da oggi inizieremo a vedere alcuni “Css Tricks” per quanto riguarda i……