le 11/03/2008 à 11:32
Forcer le téléchargement d'un pdf
Merci. Je vais voir ça tout de suite.
<?php
//Liste des documents.
$documents = array();
$rep = opendir("./pdf");
while ($fichier = readdir($rep)){
if($fichier != "." && $fichier != ".."){
$documents[] = $fichier;
}
}
closedir($rep);
//TTT du formulaire si $_POST n'est pas vide.
if(!empty($_POST)){
//Récupérer le n° du document : prendre la clé de la première ligne de $_POST, normalement du type n_x
//n étant le n° du document.
list($numéro) = each($_POST);
//Convertir la chaîne en entier, seul le n° reste.
$numéro = (integer) $numéro;
//En déduire le nom du document.
$nomFichier = $documents[$numéro];
//Le chemin.
$path = "./pdf/";
//Sa taille.
$poids = filesize($path.$nomFichier);
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: public");
header("Content-Description: File Transfer");
header("Content-Type: application/pdf\n");
$header="Content-Disposition: attachment; filename=".$nomFichier;
header($header);
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".$poids);
@readfile($path.$nomFichier);
exit();
}
?>
<form name="telechargements" method="post" action="telechargements.php">
<table cellspacing="0">
<tr><th colspan="2">Visualiser</th><th>Télécharger</th></tr>
<?php
foreach($documents as $numéro => $document){
echo sprintf("<tr><td>%s</td><td>%s</td><td>%s</td></tr>\n",
"<a href='./pdf/". $document ."' alt='Document PDF'><img src='./img_pres/ico/pdf20.png' /></a>",
"<a href='./pdf/". $document ."' alt='Document PDF'>".chaineTelechargement($document)." /></a>",
"<input type='image' name='$numéro' alt='Télécharger' src='./img_pres/ico/telecharger20.png'>");
}
?>
</table>
</form>
<?php
//Envoyer l'en-tête d'attachement.
$header = "Content-Disposition: attachment; ";
$header .= "filename=$nomFichier\n";
header($header);
//Envoyer l'en-tête de type MIME (ici pdf).
header("Content-Type: application/pdf\n");
//Envoyer le document. Pas d'encodage magic_quotes.
set_magic_quotes_runtime(0);
readfile($path.$nomFichier);
?>
<?php
//Begin writing headers
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: public");
header("Content-Description: File Transfer");
//Use the switch-generated Content-Type
header("Content-Type: application/pdf;");
//Force the download
$header="Content-Disposition: attachment; filename=".$nomFichier.";";
header($header );
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".$poids);
@readfile($path.$nomFichier);
exit();
?>
<?php header('Content-Type: application/octet-stream');
header('Content-Length: '.$poids);
header('Content-disposition: attachment; filename='.$nomFichier);
header('Pragma: no-cache');
header('Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0');
header('Expires: 0');
readfile($path.$nomFichier);
exit();
?>
Chargement en cours