PHP xlsx en-tête
donc cela fonctionne:
myphpfile.php:
<?php
header('Content-disposition: attachment; filename=myfile.pdf');
header('Content-type: application/pdf');
readfile('myfile.pdf');
?>
que le fichier php qui est appelé ici et le téléchargement de PDF fonctionne très bien:
<a class = "oglasavanje" href = "../../cjenik/myphpfile.php">download</a><br/>
mais cela ne fonctionne pas:
<?php
header('Content-disposition: attachment; filename=myfile.xlsx');
header('Content-type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
readfile('myfile.xlsx');
?>
à la fois .pdf et .xlsx fichiers sont dans le même dossier. Quand je clique sur le lien "télécharger" le téléchargement de windows s'affiche, j'ai enregistrer le fichier, mais le fichier ne peut pas être ouvert. Il me donne l'erreur suivante:
Excel ne peut pas ouvrir le fichier 'myfile.xlsx" parce que le format de fichier ou
l'extension de fichier n'est pas valide. Vérifiez que le fichier n'a pas été
corrompu et que l'extension du fichier correspond au format du fichier.
Le fichier s'ouvre bien quand je l'ouvre manuellement (c'est à dire sans le télécharger via le lien)
J'utilise WAMP, si c'est de l'importance.
Toute aide est appréciée.
--- EDIT ---
J'ai trouvé ce morceau de code php.net:
ob_clean();
flush();
donc le code final ressemble à ceci et cela fonctionne:
$file = "myfile.xlsx";
header('Content-disposition: attachment; filename='.$file);
header('Content-type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Length: ' . filesize($file));
header('Content-Transfer-Encoding: binary');
header('Cache-Control: must-revalidate');
header('Pragma: public');
ob_clean();
flush();
readfile($file);
Merci à tous pour les réponses.
Aussi, son utile de connaître les navigateurs, il échoue. IE a été connu pour avoir certains problèmes de téléchargement de fichiers de certains types dans certaines conditions.
Je n'ai pas calculer et envoyer la taille du fichier (et je ne sais pas comment le faire). C'est à défaut dans Firefox.
de le lire et de compter les octets. Il y a un gars en dessous de parler de certains autres en-têtes qui pourraient vous aider.
OriginalL'auteur GTCrais | 2012-04-17
Vous devez vous connecter pour publier un commentaire.
Dépend de vos navigateurs de sorte que beaucoup de choses peuvent causer un tel comportement comme
Content-length
,Cache-Control
etcÉgalement Modifier
Content-type
àContent-Type
Content-disposition
àContent-Disposition
Essayer
L'erreur est expliqué dans le post original. En attendant, j'ai pensé à elle.
OriginalL'auteur Baba
En fonction de votre navigateur web, le nom de fichier peut ne pas être d'économie entièrement avec des périodes. Si le nom de fichier est incomplet, vous pouvez essayer de remplacer cet en-tête:
avec
OriginalL'auteur Scryptronic
Cette solution fonctionne pour moi, mais quand j'essaie d'ouvrir le fichier téléchargé, j'obtiens une erreur. Pour .fichier pdf est tout simplement vide.
OriginalL'auteur Przemysław Sienkiewicz