Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1440 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Recharger page automatiquement après le téléchargement d'un fichier

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Recharger page automatiquement après le téléchargement d'un fichier

n°1350438
moxfulder
PSN : MoxFulder_
Posté le 20-04-2006 à 13:41:02  profilanswer
 

Hello.
Lors d'un submit, un formulaire HTML me retourne un fichier .txt. J'ai modifié les headers pour qu'un popup me demande où je veux enregistrer le fichier.
Une fois que ce popup est apparu, j'aimerai que la page web se refresh sur la page d'accueil mais je sais pas comment faire puisque j'ai déjà envoyé les headers pour récupéré le fichier.
 
Je pense à faire un timer javascript après le clique sur le bouton submit qui me reload la page 5 sec après le clic. C'est faisable de faire ça en javascript ? (jamais fais de ma vie du JS).  
 
Merci pour vos avis :jap:  :hello:

mood
Publicité
Posté le 20-04-2006 à 13:41:02  profilanswer
 

n°1350446
skeye
Posté le 20-04-2006 à 13:48:50  profilanswer
 

Ca ne parait pas super faisable, puisque tu as modifié le header...[:jean-guitou]


---------------
Can't buy what I want because it's free -
n°1350626
r3pt1l3
Posté le 20-04-2006 à 16:52:56  profilanswer
 

Pour faire en javascript :
 
Tu rajoutes dans ta page un truc du style :
 

Code :
  1. <script type="text/javascript">
  2. function maj() {
  3.   setTimeout( "refresh()", 5000 );
  4. }
  5. function refresh() {
  6.    document.location.reload()
  7. }
  8. </script>


 
Et dans la balise de ton form contenant le submit tu mets :

Code :
  1. onsubmit="maj();"


 
@+

n°1350633
gatsu35
Blablaté par Harko
Posté le 20-04-2006 à 16:56:49  profilanswer
 

r3pt1l3 a écrit :

Pour faire en javascript :
 
Tu rajoutes dans ta page un truc du style :
 

Code :
  1. <script type="text/javascript">
  2. function maj() {
  3.   setTimeout( "refresh()", 5000 );
  4. }
  5. function refresh() {
  6.    document.location.reload()
  7. }
  8. </script>


 
Et dans la balise de ton form contenant le submit tu mets :

Code :
  1. onsubmit="maj();"


 
@+


 
Ici on ne livre pas du code de merde, alors merci d'éviter de C/C du code de merde qui ne fonctionnera pas forcément :jap:

n°1350637
Djebel1
Nul professionnel
Posté le 20-04-2006 à 16:59:01  profilanswer
 

gatsu35 a écrit :

Ici on ne livre pas du code de merde, alors merci d'éviter de C/C du code de merde qui ne fonctionnera pas forcément :jap:

 :lol:  :lol:  

n°1350644
r3pt1l3
Posté le 20-04-2006 à 17:02:32  profilanswer
 

Il a demander un bout de code javascript sur le submit, je lui donne ce qu'il demande, merde ou pas.
Donc evite de l'ouvrir pour rien dire :)

n°1350664
gatsu35
Blablaté par Harko
Posté le 20-04-2006 à 17:23:11  profilanswer
 

r3pt1l3 a écrit :

Il a demander un bout de code javascript sur le submit, je lui donne ce qu'il demande, merde ou pas.
Donc evite de l'ouvrir pour rien dire :)


Tout bien réfléchis c'est la meilleure méthode puisque c'est ce qu'il voulait  :jap:

n°1350666
r3pt1l3
Posté le 20-04-2006 à 17:29:07  profilanswer
 

Sans rancune ;)
Désolé de ma ptite aggressivité au passage ;)

n°1350788
nargy
Posté le 20-04-2006 à 21:01:35  profilanswer
 

> onsubmit="maj();"
- hum, que doit faire le navigateur: deviner que tu veux envoyer le formulaire?
- onsubmit="javascript:maj();return true;"
 

Code :
  1. <script type="text/javascript">
  2. function maj() {
  3.   setTimeout( "refresh()", 5000 );
  4. }
  5. function refresh() {
  6.   document.location.reload()
  7. }
  8. </script>


Ça ne fonctionne pas du tout: quand tu appuye sur submit le script disparaît, ainsi que tous les timers.
 
Par contre ça c'est ok, à mettre dans la page où le header a été modifié:

Code :
  1. <html>
  2. <head>
  3. <!-- retour accueil au bout de 5 secondes pour l'internaute sans javascript -->
  4. <meta http-equiv="refresh" content="5;/">
  5. </head>
  6. <!-- retour accueil -->
  7. <body onload="javascript:window.location='/';">
  8. <a href="/">Retour accueil</a>
  9. </body>
  10. </html>

Message cité 1 fois
Message édité par nargy le 20-04-2006 à 21:03:15
n°1350790
skeye
Posté le 20-04-2006 à 21:04:06  profilanswer
 

nargy a écrit :


Par contre ça c'est ok, à mettre dans la page où le header a été modifié:

Code :
  1. <html>
  2. <head>
  3. <!-- retour acceuil au bout de 5 secondes pour l'internaute sans javascript -->
  4. <meta http-equiv="refresh" content="5;/">
  5. </head>
  6. <!-- retour acceuil -->
  7. <body onload="javascript:window.location='/';">
  8. ...



 
Euh là pas sûr...pace-que si ton navigateur télecharge ta page au lieu de l'afficher il risque d'en avoir rien à foutre, de ton javascript, non?[:pingouino]


---------------
Can't buy what I want because it's free -
mood
Publicité
Posté le 20-04-2006 à 21:04:06  profilanswer
 

n°1350825
nargy
Posté le 20-04-2006 à 21:42:55  profilanswer
 

heu ouais je me suis emporté, faut voir comment le header a été modifié..? ou le mettre dans une page à part.

n°1350936
moxfulder
PSN : MoxFulder_
Posté le 21-04-2006 à 08:49:21  profilanswer
 

je me suis posé toute ces questions aussi et c'est pour ça que je suis venu poser une question car je ne voyais pas comment m'en sortir. Je vois que c'est pas trivial, je vais encore essayer 2-3 trucs et je vous mettrai mes conclusions ici, on sait jamais ça pourrait être utile à qqn.

n°1350938
nargy
Posté le 21-04-2006 à 09:01:49  profilanswer
 

J'ai essayé hier avec un content-type: multipart/mixed.
Ça marche nickel avec FF: il m'affiche une page et me télécharge un fichier en même temps.

n°1350940
nargy
Posté le 21-04-2006 à 09:10:51  profilanswer
 

Exemple, une page qui propose de tagguer une image jpeg et renvoie le résultat:

Code :
  1. <?
  2. $ok=isset($_POST['envoyer']);
  3. if($ok)
  4. { // multipart
  5.   $boundary="MimeBoundary".md5(rand()).md5(rand());
  6.   header("Content-type: multipart/mixed; boundary=\"$boundary\"" );
  7.   // récupérer fichier
  8.   $fichier     = $_FILES['fichier']['name'];
  9.   $nom_fichier = $_FILES['fichier']['tmp_name'];
  10.   $nom_destination = './photo/'.$fichier;
  11.   $nom_destination=$nom_fichier;
  12.   // récupérer commentaire
  13.   if (!$_POST['commentaire'])
  14.     $_POST['commentaire']=$fichier;
  15.   // tagguer image
  16.   $img=imagecreatefromjpeg($nom_destination);
  17.   if(!$img)
  18.   $black = imagecolorallocate($img, 0, 0, 0);
  19.   imagestring($img, 5, 0, 0, stripslashes($_POST['commentaire']), $black);
  20.   imagejpeg($img, $nom_destination);
  21.   imagedestroy($img);
  22.   // envoyer image
  23.   echo "--$boundary\n";
  24.   echo "Content-disposition: attachment; filename=$fichier\n";
  25.   echo "Content-type: ".$_FILES['fichier']['type']."\n";
  26.   echo "\n";
  27.   readfile($nom_destination);
  28.   // envoyer page
  29.   echo "--$boundary\n";
  30.   echo "Content-type: text/html\n";
  31.   echo "\n";
  32. }
  33. ?>
  34. <html>
  35. <body>
  36. <form action="test0.php" method="POST" enctype="multipart/form-data">
  37. Choisir un fichier JPEG:<br>
  38. <input type="file" name="fichier" size="40"><br>
  39. Commentaire à ajouter:<br>
  40. <input type="text" name="commentaire" size="40"><br>
  41. <input type="submit" name="envoyer" value="Tagguer l'image">
  42. </form>
  43. </body>
  44. </html>
  45. <?
  46. // fin multipart
  47. if($ok) echo "--$boundary--\n";
  48. ?>


Message édité par nargy le 21-04-2006 à 09:11:36
n°1350945
nargy
Posté le 21-04-2006 à 09:21:51  profilanswer
 

hum opera et konqueror affichent juste l'image tagguée

n°1350948
anapajari
s/travail/glanding on hfr/gs;
Posté le 21-04-2006 à 09:26:57  profilanswer
 

Sinon tu peux toujours tricher en mettant le target de ton form dans une (i)frame invisible et sur le submit mettre un timer comme le disait r3pt1l3 ( yeaaah H4cK3r StAïLL3).

n°1350979
moxfulder
PSN : MoxFulder_
Posté le 21-04-2006 à 10:14:18  profilanswer
 

nargy : J'ai pas encore testé ta proposition mais dans mon cas, je dois télécharger un fichier txt et afficher non pas ce fichier mais la page principale de l'application.

n°1351003
r3pt1l3
Posté le 21-04-2006 à 10:34:58  profilanswer
 

[mode HS]
 

anapajari a écrit :

r3pt1l3 ( yeaaah H4cK3r StAïLL3).


 
oui mon vrai pseudo était deja pris et j'etais encore jeune et con a l'époque ^^
 
[/mode HS]


Message édité par r3pt1l3 le 21-04-2006 à 10:35:10

---------------
http://www.net-pratique.fr
n°1351004
nargy
Posté le 21-04-2006 à 10:35:41  profilanswer
 

ouais ouais, reprends la solution de raptor, avec juste:

Code :
  1. onsubmit="maj();return true;"


 
Le multipart c'était pour tester, ça fonctionne à peu près mais tous les navigateurs ne le supportent pas pleinement.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Recharger page automatiquement après le téléchargement d'un fichier

 

Sujets relatifs
Récupérer la source d'une page en phpProgramme pour lecture de fichier??????
[HTML]Mettre une page à jour sans devoir la rechargerAjouter une ligne en tête et fin de fichier
lire un fichier excel à l'aide de perlLecture de fichier de configuration
Ajout de caractère en tête de ligne d'un fichierInsérer une page web dans une page web
Comment modifier tous les href d'une page sans les modifier... 
Plus de sujets relatifs à : Recharger page automatiquement après le téléchargement d'un fichier


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR