Question

J'ai la fonction suivante pour forcer le téléchargement d'un fichier:

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 je tente d'ouvrir le fichier PDF téléchargé il dit: « Il y avait une erreur d'ouvrir ce document. Le fichier peut être corrompu ». Est-ce bizarre parce que je peux ouvrir le fichier d'origine et ils sont exactement les mêmes (nom de fichier, taille, etc.)

Était-ce utile?

La solution

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top