Bonjour,
Ce bout de code permet d'effectuer un upload d'image le tout sans rechargement de la page (via la balise iframe), tout semble fonctionner comme décrit (le fichier est bien transférer sur le répertoire du serveur désiré). Mon problème se situe au niveau de la mise à jour des variables sessions, en effet j'aimerais récupérer l'information de l'image transférée (path+name) et pour cela j'initialise une variable SESSION dans le fichier img_upload.php (donc, une fois l'upload effectué avec succès) mais les variables sessions cotés page "parent" ne se rafraichissent pas...
C'est certainement lié au faite que la page ne se recharge pas ... car après un reload (refresh) manuel de la page j'ai bien ma variable session mise à jour.
Mais y a t'il une astuce pour tout de même récupérer dans la page parent cette variable une fois l'upload effectué ? (j'aimerais tenir à jour un textarea avec les images uploadés par le visiteur).
Une idée sur l'origine de ce problème ?
J'ai fait pas mal de recherche (google) mais sans aboutir à une réponse sur comment procéder (le session_start(); est bien présent...)
Bref, un coup de pouce serait le bienvenu...
Merci d'avance pour votre aide et inputs.
Page parente
Page contenant le formulaire d'upload
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 <?php require_once('help_fns.php'); session_start(); do_html_header('Help'); // affichage de l'entête et du titre display_4th_form(); // Appel de la fonction d'affichage du formulaire de saisie Page 4 separation_footer(); // affichage de la séparation de pied de page avec bouton Accueil et Déconnection do_html_footer(); // affichage pied de page } ?>
Page img_upload.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56 function display_4th_form() { <SCRIPT Language="javascript"> function Choixpage(numpage){ if(numpage==1){document.forms["form4"].action="1st_page_form.php";} if(numpage==2){document.forms["form4"].action="2nd_page_form.php";} document.forms["form4"].submit(); } function startUpload(){ document.getElementById('f1_upload_process').style.visibility = 'visible'; return true; } function stopUpload(success){ var result = ''; alert(success); if (success == 1){ document.getElementById('result').innerHTML = '<span class="msg">The file was uploaded successfully!<\/span><br/><br/>'; else{ document.getElementById('result').innerHTML = '<span class="emsg">There was an error during file upload!<\/span><br/><br/>'; } document.getElementById('f1_upload_process').style.visibility = 'hidden'; document.getElementById('f1_upload_form').innerHTML = result + 'File: <input name="myfile" type="file" /><input type="submit" name="submitBtn" value="Upload" />'; return true; } </script> <div id="principal"> <br> <h2>Formulaire de saisie - Page 4</h2> <p> <p id="f1_upload_process">Chargement...<br/><img src="img/loading.png" /></p> <form class="form_upload" name="form5" action="img_upload.php" method="post" enctype="multipart/form-data" target="upload_target" onsubmit="startUpload();" > <div id="f1_upload_form"> File: <input name="myfile" type="file" /> <input type="submit" name="submitBtn" value="Upload" /> </div> </form> <iframe id="upload_target" name="upload_target" src="#" style="width:0;height:0;border:0px solid #fff;"></iframe> <p id="result"></p> <form name="form4" method="post"> <br> <br> <table border="0"> <tr> <td> <input type="hidden" name="data" value="fromform4"> <input type="button" value="Précédent" OnClick ="javascript:Choixpage(1)"/> <input type="button" value="Suivant" OnClick ="javascript:Choixpage(2)"/> </td> </tr> </table> </form> <br> </div>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 <?php session_start(); $destination_path = "photoFiches/"; $result = 0; $target_path = $destination_path . basename($_FILES['myfile']['name']); $imagename = basename( $_FILES['myfile']['name']); $link = ""; if(@move_uploaded_file($_FILES['myfile']['tmp_name'], $target_path)) { $result = 1; $link = $destination_path; $link .= $imagename; $_SESSION['forms']['img_upload']= $link; } sleep(1); ?> <script language="javascript" type="text/javascript"> window.top.window.stopUpload(<?php echo $result; ?>); </script>
Partager