J'ai commenté deux lignes car mon fichier est généré à la volée.
Je ne connais pas a priori la longueur.
Celà a toujours marché avec Firefox mais jamais sous IE, il génère une
erreur :
"IE n'a pas pu ouvrir ce site Internet. Le site n'est pas disponible ou
n'a pas pu être trouvé. Réessayez ultérieurement"
Y-a-t-il une subtilité qui m'échappe ?
Connaissez-vous un site de référence traitant de la question ?
php.net ne contient pas grand chose sur le sujet
ca c'est correct, pas besoin de le commenter, puisque c'est assé important, là, le fichier s'apellera tonscript.php et non pas tonfichier.txt Cependant, je pense qu'il est utile de rappeller, et si mes souvenirs sont bons, que une certaine RFC, la 2616, ou la 2661, je sais plus, déconseille l'utilisation de ce header, pour un tas de raisons de sécurité etc, et que, officiellement, il n'est pas censé exister, toutefois, vu qu'il est de plus en plus utilisé, le W3 est en train de documenter son utilisation, et les risques potentiels, je ne sais pas où ça en est, si quelqu'un peut préciser...
header("Content-Type: application/octet-stream");
Pas sûr de ça non plus, essaye plutot:
header ("Content-Type: text/plain");
header("Content-Transfer-Encoding: binary");
binaire alors que c'est un fichier texte?
//header("Content-Length: 10000");
il est possible de le faire automatiquement...
header("Pragma: no-cache");
Pragma indique au navigateur si il doit renvoyer une requête au serveur d'origine ou non, ici vous lui dites que non, pourquoi lui autoriser à stocker le fichier alors? Indiquez no-cache aux deux, ou alors private au cache-control et supprimez cette ligne...
En envoyant un expire avec une valeure invalide, vous indiquez donc au navigateur qu'il doit vérifier l'état du fichier à chaque appel, sans stockage... Le premier cache-control est donc très contradictoire
J'ai commenté deux lignes car mon fichier est généré à la volée.
Pas un problème
Je ne connais pas a priori la longueur.
Il existe des fonctions qui permettent de connaitre la longueur d'une chaine, voire même d'un fichier, ceci peut donc aussi être fait à la volée...
Y-a-t-il une subtilité qui m'échappe ?
Quelques-unes ;)
Connaissez-vous un site de référence traitant de la question ? php.net ne contient pas grand chose sur le sujet
Il en existe pas mal, principalement les RFC de HTTP, ou quelques sites qui synthétisent les informations... Mais va falloir se mettre à l'anglais pour avoir des fichiers réellement interressants...
Merci à l'avance pour toute piste.
HTH,
Démosthène
S.
Demosthene wrote:
Bonjour à tous,
Bonjour tout seul,
Je propose le téléchargement d'un fichier *.txt hors du navigateur.
Ok, rien de mal de ce côté là, par "hors du navigateur" j'entends
obliger le téléchargement, et non pas l'ouverture par le navigateur...
Après recherche de mon problème sur google, j'ai corrigé mes entêtes :
header("Cache-Control: public");
pas vraiment nécessaire... surtout que vous mettez le pragma à no-cache
plus tard... Utilisez soit un private ou alors no-Cache ici aussi
header("Content-Description: File Transfer");
Pas sûr que ce soit une description valide mais passons
ca c'est correct, pas besoin de le commenter, puisque c'est assé
important, là, le fichier s'apellera tonscript.php et non pas tonfichier.txt
Cependant, je pense qu'il est utile de rappeller, et si mes souvenirs
sont bons, que une certaine RFC, la 2616, ou la 2661, je sais plus,
déconseille l'utilisation de ce header, pour un tas de raisons de
sécurité etc, et que, officiellement, il n'est pas censé exister,
toutefois, vu qu'il est de plus en plus utilisé, le W3 est en train de
documenter son utilisation, et les risques potentiels, je ne sais pas où
ça en est, si quelqu'un peut préciser...
header("Content-Type: application/octet-stream");
Pas sûr de ça non plus, essaye plutot:
header ("Content-Type: text/plain");
header("Content-Transfer-Encoding: binary");
binaire alors que c'est un fichier texte?
//header("Content-Length: 10000");
il est possible de le faire automatiquement...
header("Pragma: no-cache");
Pragma indique au navigateur si il doit renvoyer une requête au serveur
d'origine ou non, ici vous lui dites que non, pourquoi lui autoriser à
stocker le fichier alors? Indiquez no-cache aux deux, ou alors private
au cache-control et supprimez cette ligne...
En envoyant un expire avec une valeure invalide, vous indiquez donc au
navigateur qu'il doit vérifier l'état du fichier à chaque appel, sans
stockage... Le premier cache-control est donc très contradictoire
J'ai commenté deux lignes car mon fichier est généré à la volée.
Pas un problème
Je ne connais pas a priori la longueur.
Il existe des fonctions qui permettent de connaitre la longueur d'une
chaine, voire même d'un fichier, ceci peut donc aussi être fait à la
volée...
Y-a-t-il une subtilité qui m'échappe ?
Quelques-unes ;)
Connaissez-vous un site de référence traitant de la question ?
php.net ne contient pas grand chose sur le sujet
Il en existe pas mal, principalement les RFC de HTTP, ou quelques sites
qui synthétisent les informations... Mais va falloir se mettre à
l'anglais pour avoir des fichiers réellement interressants...
ca c'est correct, pas besoin de le commenter, puisque c'est assé important, là, le fichier s'apellera tonscript.php et non pas tonfichier.txt Cependant, je pense qu'il est utile de rappeller, et si mes souvenirs sont bons, que une certaine RFC, la 2616, ou la 2661, je sais plus, déconseille l'utilisation de ce header, pour un tas de raisons de sécurité etc, et que, officiellement, il n'est pas censé exister, toutefois, vu qu'il est de plus en plus utilisé, le W3 est en train de documenter son utilisation, et les risques potentiels, je ne sais pas où ça en est, si quelqu'un peut préciser...
header("Content-Type: application/octet-stream");
Pas sûr de ça non plus, essaye plutot:
header ("Content-Type: text/plain");
header("Content-Transfer-Encoding: binary");
binaire alors que c'est un fichier texte?
//header("Content-Length: 10000");
il est possible de le faire automatiquement...
header("Pragma: no-cache");
Pragma indique au navigateur si il doit renvoyer une requête au serveur d'origine ou non, ici vous lui dites que non, pourquoi lui autoriser à stocker le fichier alors? Indiquez no-cache aux deux, ou alors private au cache-control et supprimez cette ligne...
En envoyant un expire avec une valeure invalide, vous indiquez donc au navigateur qu'il doit vérifier l'état du fichier à chaque appel, sans stockage... Le premier cache-control est donc très contradictoire
J'ai commenté deux lignes car mon fichier est généré à la volée.
Pas un problème
Je ne connais pas a priori la longueur.
Il existe des fonctions qui permettent de connaitre la longueur d'une chaine, voire même d'un fichier, ceci peut donc aussi être fait à la volée...
Y-a-t-il une subtilité qui m'échappe ?
Quelques-unes ;)
Connaissez-vous un site de référence traitant de la question ? php.net ne contient pas grand chose sur le sujet
Il en existe pas mal, principalement les RFC de HTTP, ou quelques sites qui synthétisent les informations... Mais va falloir se mettre à l'anglais pour avoir des fichiers réellement interressants...
// C'est le plus sûr moyen que j'ai trouvé d'avoir la boite de choix // entre sauver sur disque et visualiser directement. header("Content-Type: application/octet-stream");
// pas vraiement fait attention sur ce point header("Content-Transfer-Encoding: text");
// Vous avez parfaitement raison en plus, quel bille je fais par moment ;) header("Content-Length: $len_chaine");
Cependant, je pense qu'il est utile de rappeller, et si mes souvenirs sont bons, que une certaine RFC, la 2616, ou la 2661, je sais plus, ...
Je vais regarder ces RFC avec attention, peut-être en retirerais-je un peu de sagesse ;)
Y-a-t-il une subtilité qui m'échappe ?
Quelques-unes ;) ARRGH ! j'en étais sûr ;)
Il en existe pas mal, principalement les RFC de HTTP, ou quelques sites qui synthétisent les informations... Mais va falloir se mettre à l'anglais pour avoir des fichiers réellement interressants... iaisse soeur ;)
// C'est le plus sûr moyen que j'ai trouvé d'avoir la boite de choix
// entre sauver sur disque et visualiser directement.
header("Content-Type: application/octet-stream");
// pas vraiement fait attention sur ce point
header("Content-Transfer-Encoding: text");
// Vous avez parfaitement raison en plus, quel bille je fais par moment ;)
header("Content-Length: $len_chaine");
Cependant, je pense qu'il est utile de rappeller, et si mes souvenirs
sont bons, que une certaine RFC, la 2616, ou la 2661, je sais plus,
...
Je vais regarder ces RFC avec attention, peut-être en retirerais-je un
peu de sagesse ;)
Y-a-t-il une subtilité qui m'échappe ?
Quelques-unes ;)
ARRGH ! j'en étais sûr ;)
Il en existe pas mal, principalement les RFC de HTTP, ou quelques sites
qui synthétisent les informations... Mais va falloir se mettre à
l'anglais pour avoir des fichiers réellement interressants...
iaisse soeur ;)
// C'est le plus sûr moyen que j'ai trouvé d'avoir la boite de choix // entre sauver sur disque et visualiser directement. header("Content-Type: application/octet-stream");
// pas vraiement fait attention sur ce point header("Content-Transfer-Encoding: text");
// Vous avez parfaitement raison en plus, quel bille je fais par moment ;) header("Content-Length: $len_chaine");
Cependant, je pense qu'il est utile de rappeller, et si mes souvenirs sont bons, que une certaine RFC, la 2616, ou la 2661, je sais plus, ...
Je vais regarder ces RFC avec attention, peut-être en retirerais-je un peu de sagesse ;)
Y-a-t-il une subtilité qui m'échappe ?
Quelques-unes ;) ARRGH ! j'en étais sûr ;)
Il en existe pas mal, principalement les RFC de HTTP, ou quelques sites qui synthétisent les informations... Mais va falloir se mettre à l'anglais pour avoir des fichiers réellement interressants... iaisse soeur ;)
Merci Je tente ces conseils et je reviens
Démosthène
Patrick Mevzek
Le Thu, 26 May 2005 19:48:28 +0200, Sebastian 'CrashandDie' Lauwers a
header("Cache-Control: public");
pas vraiment nécessaire... surtout que vous mettez le pragma à no-cache plus tard... Utilisez soit un private ou alors no-Cache ici aussi
Si, nécessaire, et préférable à Pragma, mais autant utiliser les deux. Pragma c'est plutôt du HTTP/1.0, et Cache-Control (plus fin) du HTTP/1.1
header("Expires: 0");
En envoyant un expire avec une valeure invalide,
Il faut effectivement mettre une *date* dans l'entête Expires, et il faut mettre la même date que la date actuelle pour un document ne devant pas être mis en cache.
-- Patrick Mevzek . . . . . . Dot and Co (Paris, France) <http://www.dotandco.net/> <http://www.dotandco.com/> Dépêches sur le nommage <news://news.dotandco.net/dotandco.info.news>
Le Thu, 26 May 2005 19:48:28 +0200, Sebastian 'CrashandDie' Lauwers a
header("Cache-Control: public");
pas vraiment nécessaire... surtout que vous mettez le pragma à no-cache
plus tard... Utilisez soit un private ou alors no-Cache ici aussi
Si, nécessaire, et préférable à Pragma, mais autant utiliser les deux.
Pragma c'est plutôt du HTTP/1.0, et Cache-Control (plus fin) du HTTP/1.1
header("Expires: 0");
En envoyant un expire avec une valeure invalide,
Il faut effectivement mettre une *date* dans l'entête Expires, et il faut
mettre la même date que la date actuelle pour un document ne devant pas
être mis en cache.
--
Patrick Mevzek . . . . . . Dot and Co (Paris, France)
<http://www.dotandco.net/> <http://www.dotandco.com/>
Dépêches sur le nommage <news://news.dotandco.net/dotandco.info.news>
Le Thu, 26 May 2005 19:48:28 +0200, Sebastian 'CrashandDie' Lauwers a
header("Cache-Control: public");
pas vraiment nécessaire... surtout que vous mettez le pragma à no-cache plus tard... Utilisez soit un private ou alors no-Cache ici aussi
Si, nécessaire, et préférable à Pragma, mais autant utiliser les deux. Pragma c'est plutôt du HTTP/1.0, et Cache-Control (plus fin) du HTTP/1.1
header("Expires: 0");
En envoyant un expire avec une valeure invalide,
Il faut effectivement mettre une *date* dans l'entête Expires, et il faut mettre la même date que la date actuelle pour un document ne devant pas être mis en cache.
-- Patrick Mevzek . . . . . . Dot and Co (Paris, France) <http://www.dotandco.net/> <http://www.dotandco.com/> Dépêches sur le nommage <news://news.dotandco.net/dotandco.info.news>
Demosthene
Si, nécessaire, et préférable à Pragma, mais autant utiliser les deux. Pragma c'est plutôt du HTTP/1.0, et Cache-Control (plus fin) du HTTP/1.1
Je viens de faire une grande découverte !
Fichier de test fichier.php : <? header("Content-disposition: attachment; filename=fichier.txt");
echo "texte à sauver"; ?>
Fonctionne sur IE et FireFox.
Mais toujours pas mon fichier.
Explications et situation :
Mon fichier généré et produit après une transformation de nom par rewrite rule de type " attrape-tout "
------------------------------------ RewriteEngine on RewriteRule (.*) fichier.php?id=$1 ------------------------------------
cette différence de nom doit être à l'origine du trouble du comportement de IE, qui me semble un tantinet paranoïaque dans cette histoire.
Est-ce un problème de paramétrage du serveur ? Y-a-t-il moyen d'endormire l'excés sécuritaire d'IE avec un header particulier ?
Je vais dans l'immédiat coder mes liens en "fichier.php?id=fichier.txt, mais je ne veux pas laisser transpirer cette information très longtemps.
Comment faire pour contourner ce comportement bloquant.
Merci d'avance
Démosthène.
Si, nécessaire, et préférable à Pragma, mais autant utiliser les deux.
Pragma c'est plutôt du HTTP/1.0, et Cache-Control (plus fin) du HTTP/1.1
Je viens de faire une grande découverte !
Fichier de test fichier.php :
<?
header("Content-disposition: attachment; filename=fichier.txt");
echo "texte à sauver";
?>
Fonctionne sur IE et FireFox.
Mais toujours pas mon fichier.
Explications et situation :
Mon fichier généré et produit après une transformation de nom par
rewrite rule de type " attrape-tout "
------------------------------------
RewriteEngine on
RewriteRule (.*) fichier.php?id=$1
------------------------------------
cette différence de nom doit être à l'origine du trouble du comportement
de IE, qui me semble un tantinet paranoïaque dans cette histoire.
Est-ce un problème de paramétrage du serveur ?
Y-a-t-il moyen d'endormire l'excés sécuritaire d'IE avec un header
particulier ?
Je vais dans l'immédiat coder mes liens en "fichier.php?id=fichier.txt,
mais je ne veux pas laisser transpirer cette information très longtemps.
Comment faire pour contourner ce comportement bloquant.
Si, nécessaire, et préférable à Pragma, mais autant utiliser les deux. Pragma c'est plutôt du HTTP/1.0, et Cache-Control (plus fin) du HTTP/1.1
Je viens de faire une grande découverte !
Fichier de test fichier.php : <? header("Content-disposition: attachment; filename=fichier.txt");
echo "texte à sauver"; ?>
Fonctionne sur IE et FireFox.
Mais toujours pas mon fichier.
Explications et situation :
Mon fichier généré et produit après une transformation de nom par rewrite rule de type " attrape-tout "
------------------------------------ RewriteEngine on RewriteRule (.*) fichier.php?id=$1 ------------------------------------
cette différence de nom doit être à l'origine du trouble du comportement de IE, qui me semble un tantinet paranoïaque dans cette histoire.
Est-ce un problème de paramétrage du serveur ? Y-a-t-il moyen d'endormire l'excés sécuritaire d'IE avec un header particulier ?
Je vais dans l'immédiat coder mes liens en "fichier.php?id=fichier.txt, mais je ne veux pas laisser transpirer cette information très longtemps.
Comment faire pour contourner ce comportement bloquant.
Merci d'avance
Démosthène.
__marc.quinton__
Demosthene wrote:
Bonjour à tous,
Je propose le téléchargement d'un fichier *.txt hors du navigateur.
regarder les applications qui le font deja : phpmyadmin par exemple permet d'exporter des fichiers au format zip.
d'autre part ayant réalisé cette fonction, je me souviens qu'il était nécessaire de faire un traitement legerement différent en fonction du navigateur. ($_SERVER["HTTP_USER_AGENT"])
Demosthene wrote:
Bonjour à tous,
Je propose le téléchargement d'un fichier *.txt hors du navigateur.
regarder les applications qui le font deja : phpmyadmin par exemple
permet d'exporter des fichiers au format zip.
d'autre part ayant réalisé cette fonction, je me souviens qu'il
était nécessaire de faire un traitement legerement différent
en fonction du navigateur. ($_SERVER["HTTP_USER_AGENT"])
Je propose le téléchargement d'un fichier *.txt hors du navigateur.
regarder les applications qui le font deja : phpmyadmin par exemple permet d'exporter des fichiers au format zip.
d'autre part ayant réalisé cette fonction, je me souviens qu'il était nécessaire de faire un traitement legerement différent en fonction du navigateur. ($_SERVER["HTTP_USER_AGENT"])
John GALLET
Je viens de faire une grande découverte ! Magnifique !
Ca ne fait jamais que 4 ou 5 ans que c'est écrit dans la FAQ de ce forum... http://faqfclphp.free.fr/#rub4.11
Vous ne vivriez pas dans un tonneau vous pas hasard ?
cette différence de nom doit être à l'origine du trouble du comportement
Doit être ou est ? Faites donc le test dans un répertoire sans rewriting avant de chercher dans tous les sens, ça vous gagnera du temps. Merci le sarcasme ;)
sans rewriting celà marche, mais j'ai besoin du rewriting :) Je vais voir du côté du serveur.
Ca ne fait jamais que 4 ou 5 ans que c'est écrit dans la FAQ de ce
forum... http://faqfclphp.free.fr/#rub4.11
Vous ne vivriez pas dans un tonneau vous pas hasard ?
cette différence de nom doit être à l'origine du trouble du comportement
Doit être ou est ? Faites donc le test dans un répertoire sans
rewriting avant de chercher dans tous les sens, ça vous gagnera du temps.
Merci le sarcasme ;)
sans rewriting celà marche, mais j'ai besoin du rewriting :)
Je vais voir du côté du serveur.
Ca ne fait jamais que 4 ou 5 ans que c'est écrit dans la FAQ de ce forum... http://faqfclphp.free.fr/#rub4.11
Vous ne vivriez pas dans un tonneau vous pas hasard ?
cette différence de nom doit être à l'origine du trouble du comportement
Doit être ou est ? Faites donc le test dans un répertoire sans rewriting avant de chercher dans tous les sens, ça vous gagnera du temps. Merci le sarcasme ;)
sans rewriting celà marche, mais j'ai besoin du rewriting :) Je vais voir du côté du serveur.
Cordialement
Démosthène
Domenjoud Yannick
Y-a-t-il moyen d'endormire l'excés sécuritaire d'IE avec un header particulier ?
haha, c'est une blague ? On parle bien de Internet Explorer ? L'excès sécuritaire d'une passoire c'est quoi ? J'ai du mal à suivre !!
Cordialement, Yannick
PS: dsl pour le troll
Y-a-t-il moyen d'endormire l'excés sécuritaire d'IE avec un header
particulier ?
haha, c'est une blague ? On parle bien de Internet Explorer ? L'excès
sécuritaire d'une passoire c'est quoi ? J'ai du mal à suivre !!
haha, c'est une blague ? On parle bien de Internet Explorer ? L'excès sécuritaire d'une passoire c'est quoi ? J'ai du mal à suivre !!
se déclencher pour tout et surtout n'importe quoi, pourquoi ;) j'aime bien le mot français pour "troll" : "marronier" ;)
Démosthène
jeremie.fouche
wrote in message news:<d7752p$b55$...
Demosthene wrote:
Bonjour à tous,
Je propose le téléchargement d'un fichier *.txt hors du navigateur.
regarder les applications qui le font deja : phpmyadmin par exemple permet d'exporter des fichiers au format zip.
d'autre part ayant réalisé cette fonction, je me souviens qu'il était nécessaire de faire un traitement legerement différent en fonction du navigateur. ($_SERVER["HTTP_USER_AGENT"])
oui
j'utilise (basé sur FPDF en mode téléchargement) :
exit(); # --------- FIN DU SCRIPT ------------- } else { # ERREUR }
-- Jérémie
__marc.quinton__@aviation-civile.gouv.fr wrote in message news:<d7752p$b55$1@public.stna.aviation-civile.gouv.fr>...
Demosthene wrote:
Bonjour à tous,
Je propose le téléchargement d'un fichier *.txt hors du navigateur.
regarder les applications qui le font deja : phpmyadmin par exemple
permet d'exporter des fichiers au format zip.
d'autre part ayant réalisé cette fonction, je me souviens qu'il
était nécessaire de faire un traitement legerement différent
en fonction du navigateur. ($_SERVER["HTTP_USER_AGENT"])
oui
j'utilise (basé sur FPDF en mode téléchargement) :
Je propose le téléchargement d'un fichier *.txt hors du navigateur.
regarder les applications qui le font deja : phpmyadmin par exemple permet d'exporter des fichiers au format zip.
d'autre part ayant réalisé cette fonction, je me souviens qu'il était nécessaire de faire un traitement legerement différent en fonction du navigateur. ($_SERVER["HTTP_USER_AGENT"])
oui
j'utilise (basé sur FPDF en mode téléchargement) :