Problème téléchargement fichier texte

Petit nouveau ! | 1 Messages

21 juil. 2016, 09:06

Bonjour j'ai un problème concernant le téléchargement d'un fichier texte. Je n'ai jamais eu ce problème et je ne comprends vraiment pas pourquoi ça fait ça.

Au clic sur un bouton j'appel une fonction qui crée un fichier texte. Le fichier est bien crée, quand je l'ouvre directement dans son dossier il est correct mais lorsque ma page me redirige et le fait télécharger, à ce moment il contient du code HTML.

Le fichier de base :

#FLG 000
#VER 8
70
010716
010716
000001
1

7064000

Le fichier téléchargé :

<head>
<link rel="stylesheet" href="menu.css" />
<link rel="stylesheet" href="style.css" />
<link rel="stylesheet" href="//cdn.datatables.net/1.10.11/css/jquery.dataTables.min.css" type="text/css" media="screen"/>
<link rel="stylesheet" href="../include/jquery/jquery-ui.css" />
<link rel="stylesheet" href="../include/table.css" />

</head>



<body>
#FLG 000
#VER 8
70
010716
010716
000001
1

7064000

Ce code HTML correspond à la page web dans lequel j'effectue le téléchargement :

Code : Tout sélectionner

if(isset($_GET['sage'])){ /*header('Content-Transfer-Encoding: binary'); header('Content-Disposition: attachment;filename="factures_'.date("d-m-Y").'.txt'); readfile('Documents/sage/factures_'.date("d-m-Y").'.txt');*/ $file = 'Documents/sage/factures_'.date("d-m-Y").'.txt'; if (file_exists($file)) { header('Content-Description: File Transfer'); header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename=factures_'.date("d-m-Y").'.txt'); header('Expires: 0'); header('Cache-Control: must-revalidate'); header('Pragma: public'); header('Content-Length: ' . filesize($file)); readfile($file); exit; } }
Merci à vous parce que je ne comprend vraiment rien là ^^

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

21 juil. 2016, 11:01

Bonjour,

Je suppose que tes balises html head et body sont affichées dans ton script avant ton if(isset($_GET['sage'])) ? Si c'est le cas, ils sont alors envoyés au navigateur avec le contenu du fichier et le navigateur agrège le tout.

Ton script de téléchargement ne doit strictement rien afficher à l'écran et ne devrait contenir que le code ci-dessus et rien d'autre :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...