Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Deux en un

0 views
Skip to first unread message

Zircon

unread,
Jul 4, 2000, 3:00:00 AM7/4/00
to

Bonjour

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 ?

Bol

unread,
Jul 4, 2000, 3:00:00 AM7/4/00
to
> 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.


<?

// creation de tonFichier
// ...

header( "Location: http://bidule/tonFichier" );

?>


A+
Bol


cLee

unread,
Jul 4, 2000, 3:00:00 AM7/4/00
to
Création de fichier "à la volée"

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
?>

0 new messages