Bonjour,
Voici 2 fichiers PHP qui permettent de t�l�charger un fichier du disque local vers le serveur. J'aimerai que le fichier soit copi� dans un dossier du serveur qui reprenne une variable venant de PHP. Hors, je n'arrive pas � transf�rer cette variable $num dans la fonction AJAX afin de la transiter dans le fichier upload.php
quelqu'un aurait-il une id�e ?
merci
voici les 2 fichiers PHP
fichier index160.php ci-dessous qui appelle upload.php :
Code html : 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 <!DOCTYPE html> <html lang="fr"> <head> <meta charset="utf-8" /> <script> function _(elmt) { return document.getElementById(elmt); } function uploadFichier() { var file = _('file').files[0]; var data = new FormData(); data.append('file', file); var ajax = new XMLHttpRequest(); ajax.upload.addEventListener("progress", progressHandler, false); ajax.addEventListener("load", completeHandler, false); ajax.addEventListener("error", errorHandler, false); ajax.addEventListener("abort", abortHandler, false); ajax.open("POST", "index160/upload.php"); ajax.send(data); } function progressHandler(event) { _('status_bytes').innerHTML = event.loaded + ' octets chargés sur ' + event.total + ' octets'; var pourcentage = (event.loaded / event.total) * 100; _('progressBar').value = Math.round (pourcentage); _('status').innerHTML = Math.round (pourcentage) + '% chargé... patientez'; } function completeHandler(event) { _('status').innerHTML = event.target.responseText; _('progressBar').value = 0; } function errorHandler() { _('status').innerHTML = "L'upload a échoué!"; } function abortHandler() { _('status').innerHTML = "L'upload a été annulé!"; } </script> </head> <body> <h2>Upload fichier dans dossier comme variable</h2> <?php $_POST['num'] = 123456789; $num = $_POST['num']; ?> <h2>Dossier cible souhaité = files/<?php echo $num; ?> </h2> <form method="post" enctype="multipart/form-data" id="form"> <input type="file" multiple id="file" name="file" /></br><br> <input type="button" value="Télécharger le fichier" onclick="uploadFichier()" /></br> <br> <input type="hidden" name="num" value=<?php echo $num; ?> /> <progress id="progressBar" value="0" max="100" style="width:500px"></progress> <input type="hidden" name="num" value="888888888" /> </form> <h2 id="status"></h2> <p id="status_bytes"></p> </body> </html>
et upload.php ci-dessous dans le dossier \index160\
PS : les fichiers t�l�charg�s viennent se copier dans le dossier \index160\files\temp
lorsque le transfert de variable �choue.
j'ai essay� �galement de passer une variable $_POST via javascript sans r�ussir ...
Code html : 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 <html> <meta charset="utf-8" /> <?php function skip_accents( $str, $charset='utf-8' ) { $str = htmlentities( $str, ENT_NOQUOTES, $charset ); $str = preg_replace( '#&([A-za-z])(?:acute|cedil|caron|circ|grave|orn|ring|slash|th|tilde|uml);#', '\1', $str ); $str = preg_replace( '#&([A-za-z]{2})(?:lig);#', '\1', $str ); $str = preg_replace( '#&[^;]+;#', '', $str ); return $str; } // **************** GESTION DU DOSSIER DE DESTINATION ********************** $numdossier = "temp"; if(isset($_GET['num'])) $numdossier = $_GET['num']; if(isset($_POST['num'])) $numdossier = $_POST['num']; $dir = 'files/'.$numdossier; if( is_dir($dir) === false ) mkdir($dir); // *********************** COPIE FICHIER *************************** if (!empty($_FILES)) //Vérifie la présence d'un fichier dans la superglobale $_FILES. { $nomFichier = $_FILES['file']['name']; $nomFichier = skip_accents($nomFichier); $tempRep = $_FILES['file']['tmp_name']; $error = $_FILES['file']['error']; if ($error !=0 || !$tempRep) { echo '<font color=red>Erreur: Le fichier n\'a pas pu être uploadé</font>'; die(); } if(move_uploaded_file($tempRep, $dir.'/'.$nomFichier)) { echo '<font color=blue>Chargement du fichier <font color=brown>'.($nomFichier).'<br>'; echo '<font color=blue>Dossier effectif = <font color=brown>'.$dir.'/'.$nomFichier.'<font color=blue> </font>'; } else { echo '<font color=red>Une erreur est survenue lors de l\'envoi du fichier</font>'; } } ?> </html>
Partager