2011-01-23 7 views
0

je la fonction suivante pour forcer le téléchargement d'un fichier:Problèmes avec Obliger Télécharger un fichier PDF

static public function download($file, $options=array()) { 
    $content = (isset($options['content'])) ? $options['content'] : ''; 
    $contentType = (isset($options['contentType'])) ? $options['contentType'] : ''; 
    header('Cache-Control: public'); 
    header('Content-Description: File Transfer'); 
    header('Content-Disposition: attachment; filename='.File::filename($file)); 
    header('Content-Type: '.$contentType); 
    header('Content-Transfer-Encoding: binary'); 
    if ($content!='') { 
     echo $content; 
    } else { 
     readfile($file); 
    } 
} 

i envoyer un fichier PDF et contentType = "application/pdf". Le problème est que lorsque j'essaie d'ouvrir le fichier PDF téléchargé, il est écrit "Il y a eu une erreur lors de l'ouverture de ce document." Le fichier est peut-être corrompu ", explique-t-il. Est bizarre parce que je peux ouvrir le fichier original et ils ressemblent exactement (nom de fichier, taille, etc)

+0

Y a-t-il une sortie avant que celle-ci ne soit lancée? Pouvez-vous mettre 'exit' à la fin pour vous assurer qu'aucune autre sortie n'est envoyée? – alex

+0

merci Alex, c'était tout! Je faisais écho à certaines choses et c'était le problème ... si vous voulez, vous pouvez poster votre commentaire comme une réponse pour que je puisse voter comme le sélectionné –

+0

Fait, et pas de soucis! – alex

Répondre

1

Assurez-vous qu'il n'y a pas de sortie avant que cette fonction soit exécutée, et pour faire bonne mesure, utilisez la construction exit à la fin de cette fonction :)

Questions connexes