Bonjour,
Voici mon problème :
J'essaie de créer un fichier .CSV et de forcer le téléchargement pour l'utilisateur.
Pour le moment, la partie CSV est réussi puisque je peux créer un fichier lisible et avec les bonnes données aux bons formats.
Mon soucis, c'est qu'au moment de l'envoyer à l'utilisateur, le fichier proposé ne contient pas du tout ce que je veux. En effet, mon fichier est rempli avec le code source de ma page.
voici mon code :
Le fonctionnement est le suivant, je laisse l'utilisateur choisir une action. A ce moment, je recharge ma page en y incluant le code ci dessus (un gentil petit if() )
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 private function fichierCSV($contenu) { // On crée un fichier dans lequel on va stocker nos données $fp = fopen('./file.csv', 'w'); //On initialise les deux première lignes avec un Titre et les colonnes séléctionnées fputcsv($fp, array(0=>$contenu[0][0]['name']),';'); fputcsv($fp, array_keys($resultats[0][0]), ';'); // Pour chaque lignes retournées, on ajoute le contenu de chaque colonne foreach ($resultats as $fields) { fputcsv($fp, $fields[0], ';'); } // On ferme le fichier fclose($fp); $file = './file.csv'; header('Content-Description: File Transfer'); header('Content-Type: application/csv'); header('Content-Disposition: attachment; filename='.basename($file)); header('Content-Transfer-Encoding: binary'); header('Expires: 0'); header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); header('Pragma: public'); header('Content-Length: ' . filesize($file)); ob_clean(); flush(); readfile(basename($fp)); exit; //$this->redirect('./file.csv'); }
du coup, quand la page se recharge, j'ai bien un fichier qui demande à être telecharger, avec le bon nom et tout. Mais il ne s'agit que du code HTML de la page.
Est ce que quelqu'un aurait une petite idée du pourquoi du comment?
Merci








Répondre avec citation
Partager