J'aimerai savoir s'il existe (sinon est-ce que c'est possible) un moyen
qui permet de faire un lien (un < a href...) qui fasse deux choses à la
fois: j'aimerai en un seul clic que PHP cree un fichier et et que le
navigateur télécharge le fichier crée.
Cordialement
Z.
NB: Peut être en Javascript ?
<?
// creation de tonFichier
// ...
header( "Location: http://bidule/tonFichier" );
?>
A+
Bol
Reposons le problème : envoyer un fichier au Browser client, sans écrire sur
le serveur
L'utilisateur clique sur un un lien, il télécharghe un fichier créé à la
volée.
Tout est dans le header("Content-type: application/octetstream");
La solution donnée pourra être adaptée pour comptabiliser le nombre de
download d'un fichier
--------------
unepage.html
--------------
<html>
<a href="download.php3">download</a>
</html>
----------------
download.php3
----------------
<?
/***** Creation d'un entete http *****/
// on donne un nom au fichier
header("Content-disposition: filename="nom_du_fichier.txt");
// header http : on envoie un fichier à télécharhger
header("Content-type: application/octetstream");
// on pourra aussi interdire l'utrilisation du cache du browser client
header("Pragma: no-cache");
header("Expires: 0");
/***** un petit truc(trouvé je sais plus ou) *****/
// déterminer quelle chaine pour faire un retour chariot
// ladite chaine dépends de l'os client
$client=getenv("HTTP_USER_AGENT");
if (ereg('[^(]*\((.*)\)[^)]*',$client,$regs)) { $os = $regs[1]; }
// this looks better under WinX
if (eregi("Win",$os)) $crlf="\r\n";
/***** Output des données, le contenu du fichier *****/
echo "ce que le fichier doit contenir".$crlf;
echo "on peut faire plusieurs echo".$crlf;
// le octetstream est fermé à la sortie du script
?>