8797 sujets

Développement web côté serveur, CMS

Bonsoir,
Voilà dans un espace abonnés, je propose le téléchargement d'un PDF.
Le process s'effectue sous réserve que l'abonné est bien connecté.
le téléchargement s'effectue.

Or, le HIC le pdf est illisible , j'ai le message suivant :

Adobe n'a pas pu ouvrir le doc.pdf, car le type de fichier n'est pas pris en charge ou le fichier est endommagé (il a été envoyé en tant que pièce jointe et n'a pas été décodé correctement par exemple).

voici mon code :


header('Content-type: application/pdf');
header("Content-Disposition: attachment; filename=\"".basename($fullPath)."\";" ); 
header('Content-Disposition: attachment; filename="sac.pdf"');
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past
readfile('original.pdf');


j'enchaine sur la requete si l'abonné est identifié et connecté
puis :


function downloadFile( $fullPath ){  
  if( headers_sent() ) 
    die('Headers Sent'); 

  // Required for some browsers 
  if(ini_get('zlib.output_compression')) 
    ini_set('zlib.output_compression', 'Off'); 

  // File Exists? 
  if( file_exists($fullPath) ){ 
    
	
    // Parse Info / Get Extension 
    $fsize = filesize($fullPath); 
    $path_parts = pathinfo($fullPath); 
    $ext = strtolower($path_parts["extension"]); 
    
    // Determine Content Type 
    switch ($ext) { 
      case "pdf": $ctype="application/pdf"; break; 
      default: $ctype="application/force-download"; 
    } 

    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: $ctype"); 
    header("Content-Disposition: attachment; filename=\"".basename($fullPath)."\";" ); 
    header("Content-Transfer-Encoding: binary"); 
    header("Content-Length: ".$fsize); 
    ob_clean(); 
    flush(); 
    readfile( $fullPath ); 

  } else 
    die('File Not Found'); 

} 


Avez-vous une idée sur ce qui plante la lecture du PDF, une fois téléchargé ?

Merci beaucoup de votre aide Smiley confus
Modifié par bouzette (16 Mar 2011 - 11:28)