2010-06-11 6 views
2

Je veux créer un fichier à la volée et l'envoyer au navigateur au lieu du site php. Je pense que je dois utiliser la fonction d'en-tête, mais comment faire? Quelqu'un peut-il me dire ça?Comment puis-je télécharger un fichier inexistant dans php

+2

J'ai pris la liberté de reformuler votre question. Si je me suis trompé ou si j'ai mal compris votre intention, je m'excuse d'avance. Et bien sûr, n'hésitez pas à le modifier à nouveau. – Bobby

Répondre

1

Si vous avez besoin de faire des données à télécharger sous forme de fichier régulier alors vous devez dire le navigateur que le contenu que vous envoyez va must être téléchargé à la place comme affiché sur le navigateur en tant que HTML standard. Pour ce faire, vous pouvez utiliser l'en-tête. Par exemple: si vous avez besoin pour obtenir un fichier .csv dinamicly généré par PHP, vous devez insérer ces lignes de code avant l'affichage des données sur la page:

header("Content-type: application/csv"); 
    header("Content-Disposition: attachment; filename=report.csv"); 
    header("Pragma: no-cache"); 
    header("Expires: 0"); 
    echo 'data1,data2,data3...'; 

Assurez-vous de ne pas envoyer les données au navigateur avant de définir un paramètre d'en-tête.

3
<?php 
header('Content-type: text/plain'); 
header('Content-disposition: attachment; filename=hello.txt'); 
echo "Hello world"; 
?> 
+0

c'est exactement ce que je veux dire –

+1

@moustafa: Alors acceptez la réponse. ;) – Bobby

1

Il est très, très difficile de comprendre ce que vous dites - ce que je pense que vous dites que vous voulez un script PHP pour faire un client de télécharger sa sortie au lieu d'afficher sans créer un fichier. Si c'est ce que vous essayez de faire, vous pouvez utiliser ce code:

header("Content-Disposition: attachment; filename=my_file.txt"); 
Questions connexes