Solutions au problème selon lequel les fichiers téléchargés PHP ne peuvent pas être ouverts : 1. Annulez la sortie de toute information non liée au fichier pendant le processus de téléchargement ; 2. Enregistrez le format du fichier de sortie et le nom du suffixe de manière cohérente.
Recommandé : "Tutoriel vidéo PHP"
php télécharger un fichier Excel,
1. Ne produisez aucune information autre qu'un fichier pendant le processus de téléchargement, telle que les informations du journal d'écho. Sinon, le fichier téléchargé ne pourra pas être ouvert, ce qui entraînera une erreur de format ou le fichier sera endommagé.
2. Le format Excel de sortie doit être enregistré avec le nom du suffixe, sinon cela provoquera une erreur de format ou le fichier est endommagé
Le code est le suivant :
if (file_exists(CACHE_PATH . $file_name)){ //$this->logger->error('file realpath:'.realpath(CACHE_PATH . $file_name)); header( 'Pragma: public' ); header( 'Expires: 0' ); header( 'Content-Encoding: none' ); header( 'Cache-Control: must-revalidate, post-check=0, pre-check=0' ); header( 'Cache-Control: public' ); header( 'Content-Type: application/vnd.ms-excel'); header( 'Content-Description: File Transfer' ); header( 'Content-Disposition: attachment; filename=' . $file_name ); header( 'Content-Transfer-Encoding: binary' ); header( 'Content-Length: ' . filesize ( CACHE_PATH . $file_name ) ); readfile ( CACHE_PATH . $file_name ); } else { $this->logger->error('export model :'.$id.' 错误:未生产文件'); echo '<script>alert(\'export error, file not exists!\')</script>'; }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!