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

 


 Mot :   Pseudo :  
 
 Page :   1  2
Page Suivante
Auteur Sujet :

Upload fichier avec choix dossier destination

n°2208645
gasolina
Posté le 29-10-2013 à 19:43:25  profilanswer
 

Reprise du message précédent :
C'est que j'essaye dans le php mais rien ne veux marcher ^^ alors je me demande vers où aller pour finir ça :/

mood
Publicité
Posté le 29-10-2013 à 19:43:25  profilanswer
 

n°2208664
MaybeEijOr​Not
but someone at least
Posté le 29-10-2013 à 22:48:35  profilanswer
 

Qu'est-ce qui ne marche pas?

n°2208665
gasolina
Posté le 29-10-2013 à 22:52:24  profilanswer
 

la partie sur le déplacement du fichier, rien ne se passe

 

Ne faudrait-il pas une fonction dans ce genre là:

 
Code :
  1. Example #1:
  2. <? 
  3. function upload($tmp_name, $name){ 
  4.     // do not forget to control file type and size 
  5.     copy($tmp_name, "uploads/" . $name); 
  6. include("PHPLiveX.php" ); 
  7. $ajax = new PHPLiveX("upload" ); 
  8. ?>
  

A remanier pour mon cas


Message édité par gasolina le 29-10-2013 à 22:59:48
n°2209127
gasolina
Posté le 04-11-2013 à 09:47:55  profilanswer
 

Tu le gérerais comment toi?

n°2209131
MaybeEijOr​Not
but someone at least
Posté le 04-11-2013 à 10:20:27  profilanswer
 


 
Je n'ai jamais fais d'upload, réfère-toi au manuel.

n°2209132
gasolina
Posté le 04-11-2013 à 10:23:57  profilanswer
 

en php seul j'y arrive à faire un upload, ce que j'arrive pas c'est à le lier avec le dossier choisi


Message édité par gasolina le 04-11-2013 à 10:24:17
n°2209135
MaybeEijOr​Not
but someone at least
Posté le 04-11-2013 à 10:37:29  profilanswer
 

J'avais lu en diagonal ce que disait le manuel, si j'ai bien compris tu télécharges dans un dossier temporaire du serveur, tu vérifies ton fichier et tu le déplaces dans le répertoire choisi à l'aide de : http://php.net/manual/fr/function. [...] d-file.php
 
Cela ne me semble pas très compliqué.

n°2209137
gasolina
Posté le 04-11-2013 à 10:38:59  profilanswer
 

et pour toi il suffirait donc de choisir la variable du dossier choisi dans le move uploaded

n°2209144
MaybeEijOr​Not
but someone at least
Posté le 04-11-2013 à 10:58:23  profilanswer
 

Oui, après tu testes et tu verras bien.

n°2209176
gasolina
Posté le 04-11-2013 à 13:47:37  profilanswer
 

En utilisant ce code là lorsque je vais dans l’arborescence il ajoute la case avec le sous dossier en dessous de la barre d'ajout de fichier et non a droite de la première case sais-tu d'où cela peut venir?

mood
Publicité
Posté le 04-11-2013 à 13:47:37  profilanswer
 

n°2209184
gasolina
Posté le 04-11-2013 à 14:20:18  profilanswer
 

Voilà où j'en suis pour l'instant j'ai surement du faire une erreur quelque part :/ :

 


test.hml

 
Code :
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <title>Page d'essai</title>
  5. <script type="text/javascript">
  6.  file = '';
  7.  function requete() {
  8.    if (typeof(statement) != 'undefined' && statement == 1) {
  9.     xhr.abort();
  10.     alert('Une requête a déjà été envoyée!');
  11.     return false;
  12.    } else if (dirname == ' ') {
  13.     alert('Sélectionnez un dossier');
  14.    } else if (activeselect.value == ' ') {
  15.     inactiveselect = document.getElementsByTagName('select');
  16.     start = 0;
  17.     dirname = '';
  18.     taille = inactiveselect.length;
  19.     for(i=0; i<taille; i++) {
  20.      if(activeselect == inactiveselect[i]) {
  21.       start = i+1;
  22.      } else if(start == 0 && inactiveselect[i].value != ' ') {
  23.       dirname += inactiveselect[i].value;
  24.      } else if(start > 0) {
  25.       inactiveselect[start].parentNode.removeChild(inactiveselect[start]);
  26.      }
  27.     }
  28.    } else if(activeselect != document.getElementsByTagName('select')[document.getElementsByTagName('select').length-1]) {
  29.     dirname = '';
  30.     inactiveselect = document.getElementsByTagName('select');
  31.     start = 0;
  32.     taille = inactiveselect.length;
  33.     for(i=0; i<taille; i++) {
  34.      if(activeselect == inactiveselect[i]) {
  35.       dirname += inactiveselect[i].value + '/';
  36.       start = i+1;
  37.      } else if(start == 0) {
  38.       dirname += inactiveselect[i].value + '/';
  39.      } else if(start > 0) {
  40.       inactiveselect[start].parentNode.removeChild(inactiveselect[start]);
  41.      }
  42.     }
  43.     statement = 1;
  44.     request(readData);
  45.    } else {
  46.     dirname = '';
  47.     inactiveselect = document.getElementsByTagName('select');
  48.     start = 0;
  49.     taille = inactiveselect.length;
  50.     for(i=0; i<taille; i++) {
  51.      dirname += inactiveselect[i].value + '/';
  52.     }
  53.     statement = 1;
  54.     request(readData);
  55.    }
  56.  }
  57.  function getXMLHttpRequest() {
  58.    xhr = null;
  59.    if(window.XMLHttpRequest) {
  60.     return new XMLHttpRequest();
  61.    } else if(window.ActiveXObject) {
  62.     try {
  63.      return new ActiveXObject('Msxml2.XMLHTTP');
  64.     } catch(e) {
  65.      return new ActiveXObject('Microsoft.XMLHTTP');
  66.     }
  67.    } else {
  68.     alert('Erreur: votre navigateur ne supporte pas l\'objet XMLHTTPRequest...');
  69.     return null;
  70.    }
  71.  }
  72.  function request(callback) {
  73.    xhr = getXMLHttpRequest();
  74.    xhr.onreadystatechange = function() {
  75.     if(xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0)) {
  76.      statement = 0;
  77.      callback(xhr.responseText);
  78.     } else if(xhr.readyState < 4) {
  79.      document.getElementById('but').style.display = 'none';
  80.      document.getElementById('loader').style.visibility = 'visible';
  81.     }
  82.    };
  83.    xhr.open('POST', 'test.php', true);
  84.    xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
  85.    xhr.send('path='+dirname+'&file='+file+'&lister_dossier='+conf);
  86.  }
  87.  function readData(sData) {
  88.    if(sData == 'erreur') {
  89.     document.getElementById('loader').style.visibility = 'hidden';
  90.     document.getElementById('but').style.display = 'inline';
  91.     alert(xhr.responseText);
  92.    } else if(sData == 'ok') {
  93.     document.getElementById('loader').style.visibility = 'hidden';
  94.     document.getElementById('but').style.display = 'inline';
  95.     alert('fichier enregistré');
  96.    } else {
  97.     window.setTimeout('traitement('+xhr.responseText+')', 500);
  98.    }
  99.  }
  100.  function traitement(list) {
  101.    loader = document.getElementById('loader');
  102.    loader.style.visibility = 'hidden';
  103.    list = eval(list);
  104.    if(typeof(list[0]) != 'undefined') {
  105.     el = document.getElementsByTagName('form')[0];
  106.     parent = document.createElement('select');
  107.     parent.setAttribute('onChange', 'activeselect=this;dirname=dirname+\'/\'+this.value;conf=1;requete();');
  108.     el.appendChild(parent);
  109.     enfant = document.createElement('option');
  110.     enfant.setAttribute('value', ' ');
  111.     enfant.innerHTML = '   ';
  112.     parent.appendChild(enfant);
  113.     for(i=1; i<=list.length; i++) {
  114.      enfant = document.createElement('option');
  115.      enfant.setAttribute('value', list[i-1]);
  116.      enfant.innerHTML = list[i-1];
  117.      parent.appendChild(enfant);
  118.     }
  119.     but = document.getElementById('but');
  120.     el.appendChild(but);
  121.     el.appendChild(loader);
  122.     but.style.display = 'inline';
  123.    } else {
  124.     document.getElementById('but').style.display = 'inline';
  125.    }
  126.  }
  127. </script>
  128. </head>
  129. <body>
  130. <form name="test" onsubmit="statement=0;conf=0;requete();return false;">
  131.    <select onChange="activeselect=this;dirname=this.value;file=this.value;conf=1;requete();">
  132.    <option value=" ">   </option>
  133.   <option value="Clients">Clients</option>
  134.    <option value="Technologies">Technologies</option>
  135.    <option value="Outils">Outils</option>
  136.  <input type="file" name="file" onChange="file=this.value;" />
  137. </select>
  138.     <button type="submit" onClick="statement=0;conf=0;requete();return false;" id="but">Envoyer !</button>
  139.  <img style="font-size: 13px; font-weight: bold; visibility: hidden;" alt="loading..." src="loader.gif" id="loader" />
  140. </form>
  141. </body>
  142. </html>
  

test.php

Code :
  1. <?php
  2. function ScanDirectory($Directory) {
  3. $i = 0;
  4. $list_dir = array();
  5. $MyDirectory = opendir($Directory);
  6. while($Entry = @readdir($MyDirectory)) {
  7. if(is_dir($Directory.'/'.$Entry) && $Entry != '.' && $Entry != '..') {
  8.  $list_dir[$i] = $Entry;
  9.  $i++;
  10. }
  11. }
  12. closedir($MyDirectory);
  13. $list = json_encode($list_dir);
  14. echo $list;
  15. }
  16. if(isset($_POST['lister_dossier']) && $_POST["lister_dossier"] == 1) {
  17. $path = './Documentations/'.$_POST['path'];
  18. ScanDirectory($path);
  19. } elseif(isset($_POST['lister_dossier']) && $_POST["lister_dossier"] == 0 && isset($_POST['file'])) {
  20. $path = './Documentations/'.$_POST['path'];
  21. $file = $_POST['file'];
  22. $uploadfile = $path . basename($_FILES['file']['name']);
  23. echo '<pre>';
  24. if (move_uploaded_file($_FILES['file']['tmp_name'], $uploadfile)) {
  25.     echo "Le fichier est valide, et a ete telecharge
  26.            avec succès. Voici plus d'informations :\n";
  27. } else {
  28.     echo "Attaque potentielle par telechargement de fichiers.
  29.           Voici plus d'informations :\n";
  30. }
  31. echo 'Voici quelques informations de débogage :';
  32. print_r($_FILES);
  33. echo 'ok';
  34. } else {
  35. echo 'erreur';
  36. }
  37. ?>
 

Si tu as une idée ou vous une erreur de ma part, je suis tout ouïe car là grrrrrrrrrrrrrrrr ^^


Message édité par gasolina le 04-11-2013 à 14:50:25
n°2209245
MaybeEijOr​Not
but someone at least
Posté le 04-11-2013 à 20:21:00  profilanswer
 

gasolina a écrit :

En utilisant ce code là lorsque je vais dans l’arborescence il ajoute la case avec le sous dossier en dessous de la barre d'ajout de fichier et non a droite de la première case sais-tu d'où cela peut venir?


 
Oui, on ajoute les <select> des sous-dossiers à l'élément <form>, du coup ils se retrouvent en fin, il faut donc déplacer ton <input> après chaque ajout de champ <select> :
 

Code :
  1. <!DOCTYPE html>
  2.     <html>
  3.     <head>
  4.     <title>Page d'essai</title>
  5.     <script type="text/javascript">
  6.      file = '';
  7.      function requete() {
  8.        if (typeof(statement) != 'undefined' && statement == 1) {
  9.         xhr.abort();
  10.         alert('Une requête a déjà été envoyée!');
  11.         return false;
  12.        } else if (dirname == ' ') {
  13.         alert('Sélectionnez un dossier');
  14.        } else if (activeselect.value == ' ') {
  15.         inactiveselect = document.getElementsByTagName('select');
  16.         start = 0;
  17.         dirname = '';
  18.         taille = inactiveselect.length;
  19.         for(i=0; i<taille; i++) {
  20.          if(activeselect == inactiveselect[i]) {
  21.           start = i+1;
  22.          } else if(start == 0 && inactiveselect[i].value != ' ') {
  23.           dirname += inactiveselect[i].value;
  24.          } else if(start > 0) {
  25.           inactiveselect[start].parentNode.removeChild(inactiveselect[start]);
  26.          }
  27.         }
  28.        } else if(activeselect != document.getElementsByTagName('select')[document.getElementsByTagName('select').length-1]) {
  29.         dirname = '';
  30.         inactiveselect = document.getElementsByTagName('select');
  31.         start = 0;
  32.         taille = inactiveselect.length;
  33.         for(i=0; i<taille; i++) {
  34.          if(activeselect == inactiveselect[i]) {
  35.           dirname += inactiveselect[i].value + '/';
  36.           start = i+1;
  37.          } else if(start == 0) {
  38.           dirname += inactiveselect[i].value + '/';
  39.          } else if(start > 0) {
  40.           inactiveselect[start].parentNode.removeChild(inactiveselect[start]);
  41.          }
  42.         }
  43.         statement = 1;
  44.         request(readData);
  45.        } else {
  46.         dirname = '';
  47.         inactiveselect = document.getElementsByTagName('select');
  48.         start = 0;
  49.         taille = inactiveselect.length;
  50.         for(i=0; i<taille; i++) {
  51.          dirname += inactiveselect[i].value + '/';
  52.         }
  53.         statement = 1;
  54.         request(readData);
  55.        }
  56.      }
  57.      function getXMLHttpRequest() {
  58.        xhr = null;
  59.        if(window.XMLHttpRequest) {
  60.         return new XMLHttpRequest();
  61.        } else if(window.ActiveXObject) {
  62.         try {
  63.          return new ActiveXObject('Msxml2.XMLHTTP');
  64.         } catch(e) {
  65.          return new ActiveXObject('Microsoft.XMLHTTP');
  66.         }
  67.        } else {
  68.         alert('Erreur: votre navigateur ne supporte pas l\'objet XMLHTTPRequest...');
  69.         return null;
  70.        }
  71.      }
  72.      function request(callback) {
  73.        xhr = getXMLHttpRequest();
  74.        xhr.onreadystatechange = function() {
  75.         if(xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0)) {
  76.          statement = 0;
  77.          callback(xhr.responseText);
  78.         } else if(xhr.readyState < 4) {
  79.          document.getElementById('but').style.display = 'none';
  80.          document.getElementById('loader').style.visibility = 'visible';
  81.         }
  82.        };
  83.        xhr.open('POST', 'test.php', true);
  84.        xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
  85.        xhr.send('path='+dirname+'&file='+file+'&lister_dossier='+conf);
  86.      }
  87.      function readData(sData) {
  88.        if(sData == 'erreur') {
  89.         document.getElementById('loader').style.visibility = 'hidden';
  90.         document.getElementById('but').style.display = 'inline';
  91.         alert(xhr.responseText);
  92.        } else if(sData == 'ok') {
  93.         document.getElementById('loader').style.visibility = 'hidden';
  94.         document.getElementById('but').style.display = 'inline';
  95.         alert('fichier enregistré');
  96.        } else {
  97.         window.setTimeout('traitement('+xhr.responseText+')', 500);
  98.        }
  99.      }
  100.      function traitement(list) {
  101.        loader = document.getElementById('loader');
  102.        loader.style.visibility = 'hidden';
  103.        list = eval(list);
  104.        if(typeof(list[0]) != 'undefined') {
  105.         el = document.getElementsByTagName('form')[0];
  106.         parent = document.createElement('select');
  107.         parent.setAttribute('onChange', 'activeselect=this;dirname=dirname+\'/\'+this.value;conf=1;requete();');
  108.         el.appendChild(parent);
  109.         enfant = document.createElement('option');
  110.         enfant.setAttribute('value', ' ');
  111.         enfant.innerHTML = '   ';
  112.         parent.appendChild(enfant);
  113.         for(i=1; i<=list.length; i++) {
  114.          enfant = document.createElement('option');
  115.          enfant.setAttribute('value', list[i-1]);
  116.          enfant.innerHTML = list[i-1];
  117.          parent.appendChild(enfant);
  118.         }
  119.         infile = document.getElementById('inputfile');
  120.         but = document.getElementById('but');
  121.         el.appendChild(infile);
  122.         el.appendChild(but);
  123.         but.style.display = 'inline';
  124.        } else {
  125.         document.getElementById('but').style.display = 'inline';
  126.        }
  127.      }
  128.     </script>
  129.     </head>
  130.     <body>
  131.     <form name="test" onsubmit="statement=0;conf=0;requete();return false;">
  132.       <select onChange="activeselect=this;dirname=this.value;file=this.value;conf=1;requete();">
  133.         <option value=" ">   </option>
  134.         <option value="Clients">Clients</option>
  135.         <option value="Technologies">Technologies</option>
  136.         <option value="Outils">Outils</option>
  137.       </select>
  138.       <input type="file" name="file" onChange="file=this.value;" id="inputfile" />
  139.       <button type="submit" onClick="statement=0;conf=0;requete();return false;" id="but">Envoyer !</button>
  140.     </form>
  141.     <img style="font-size: 13px; font-weight: bold; visibility: hidden;" alt="loading..." src="loader.gif" id="loader" />
  142.     </body>
  143.     </html>

n°2209270
gasolina
Posté le 05-11-2013 à 09:34:08  profilanswer
 

D'accord j'ai compris le fonctionnement, donc maintenant j'en suis au stade du gif de chargement qui tourne et rien qui se passe, soit la gestion du move_upload, j'essaye différents trucs pour l'envoi, pour l'instant cela ne donne rien ^^, je vais persister mais je ne comprends pas cela devrait marcher en utilisant le code seul avec répertoire fixe cela fonctionne.

 

La question c'est d'où peux venir le soucis


Message édité par gasolina le 05-11-2013 à 09:54:32
n°2209280
MaybeEijOr​Not
but someone at least
Posté le 05-11-2013 à 11:34:33  profilanswer
 

Le retour est géré ici, si le message renvoyé par le PHP est 'ok' (echo 'ok';) :
 

Code :
  1. } else if(sData == 'ok') {
  2.         document.getElementById('loader').style.visibility = 'hidden';
  3.         document.getElementById('but').style.display = 'inline';
  4.         alert('fichier enregistré');

n°2209282
gasolina
Posté le 05-11-2013 à 11:42:38  profilanswer
 

J'ai un soucis dans le code php et je ne pense pas qu'il renvoie de message , donc je n'ai pas d’alerte qui apparaît

n°2209289
MaybeEijOr​Not
but someone at least
Posté le 05-11-2013 à 13:32:05  profilanswer
 

Ben en fait ton php renvoie plus qu'un simple 'ok'. Si tu veux qu'il renvoie plus d'infos il faut encapsuler ça en json. Ensuite il faut reprendre la première partie (sélection des dossiers) qui envoie les infos en json.
En effet du côté javascript je regardais la réponse de la manière :
si message de retour = 'erreur' alors...
sinon si message de retour = 'ok' alors...
sinon traitement du json pour ajout de l'arborescence.
 
En effet c'était plus simple de ne pas vérifier le contenu du json puisqu'il est variable.
Maintenant tu peux tout gérer en json en créant les bifurcations après décodage du json. C'est à dire qu'au début du json tu placeras une variable qui prendra une certaine valeur et en fonction de cette valeur tu fais ce qu'il y a à faire (afficher message d'erreur ou afficher upload ok ou afficher un nouveau champ select).
 
 
Autrement côté php, dans l'état actuel est-ce que le fichier est uploadé même si tu n'as pas de retour?

n°2209291
gasolina
Posté le 05-11-2013 à 13:48:20  profilanswer
 

Va falloir que je me documente sur le json et la manière de le faire car je n'y connais rien du tout, java j'ai des bases mais à la façon json non
 
Non le fichier n'est pas Uploadé non plus, j'avais réussi à un moment à uploadé le fichier dans un dossier temporaire /tmp dans mon wamp mais au final le fichier n'était pas bougé du /tmp au dossier final

n°2209349
MaybeEijOr​Not
but someone at least
Posté le 05-11-2013 à 20:40:00  profilanswer
 

Hum de toute façon je viens de voir, on ne peut pas gérer l'upload de fichier par ajax même par la méthode post, il va donc falloir gérer l'envoie du fichier à part.
 
Donc je reprends, j'ai tout passé en json, le fichier test2.html (je t'ai mis en gras les modifs à personnaliser) :
 

Code :
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title>Page d'essai</title>
  6. <script type="text/javascript">
  7.       function requete() {
  8.   if (typeof(statement) != 'undefined' && statement == 1) {
  9.    xhr.abort();
  10.    alert('Une requête a déjà été envoyée!');
  11.    return false;
  12.          } else if (dirname == ' ') {
  13.    alert('Sélectionnez un dossier');
  14.          } else if (activeselect.value == ' ') {
  15.    inactiveselect = document.getElementsByTagName('select');
  16.    start = 0;
  17.    dirname = '';
  18.    taille = inactiveselect.length;
  19.    for(i=0; i<taille; i++) {
  20.     if(activeselect == inactiveselect[i]) {
  21.      start = i+1;
  22.     } else if(start == 0 && inactiveselect[i].value != ' ') {
  23.      dirname += inactiveselect[i].value;
  24.     } else if(start > 0) {
  25.      inactiveselect[start].parentNode.removeChild(inactiveselect[start]);
  26.     }
  27.    }
  28.          } else if(activeselect != document.getElementsByTagName('select')[document.getElementsByTagName('select').length-1]) {
  29.    dirname = '';
  30.    inactiveselect = document.getElementsByTagName('select');
  31.    start = 0;
  32.    taille = inactiveselect.length;
  33.    for(i=0; i<taille; i++) {
  34.     if(activeselect == inactiveselect[i]) {
  35.      dirname += inactiveselect[i].value + '/';
  36.      start = i+1;
  37.     } else if(start == 0) {
  38.      dirname += inactiveselect[i].value + '/';
  39.     } else if(start > 0) {
  40.      inactiveselect[start].parentNode.removeChild(inactiveselect[start]);
  41.     }
  42.    }
  43.    statement = 1;
  44.    request(readData);
  45.   } else {
  46.    dirname = '';
  47.    inactiveselect = document.getElementsByTagName('select');
  48.    start = 0;
  49.    taille = inactiveselect.length;
  50.    for(i=0; i<taille; i++) {
  51.     dirname += inactiveselect[i].value + '/';
  52.    }
  53.    statement = 1;
  54.    request(readData);
  55.   }
  56.  }
  57.  function getXMLHttpRequest() {
  58.   xhr = null;
  59.   if(window.XMLHttpRequest) {
  60.    return new XMLHttpRequest();
  61.   } else if(window.ActiveXObject) {
  62.    try {
  63.     return new ActiveXObject('Msxml2.XMLHTTP');
  64.    } catch(e) {
  65.     return new ActiveXObject('Microsoft.XMLHTTP');
  66.    }
  67.   } else {
  68.    alert('Erreur: votre navigateur ne supporte pas l\'objet XMLHTTPRequest...');
  69.    return null;
  70.   }
  71.  }
  72.  function request(callback) {
  73.   xhr = getXMLHttpRequest();
  74.   xhr.onreadystatechange = function() {
  75.    if(xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0)) {
  76.     statement = 0;
  77.     callback(xhr.responseText);
  78.    } else if(xhr.readyState < 4) {
  79.     document.getElementById('but').style.display = 'none';
  80.     document.getElementById('loader').style.visibility = 'visible';
  81.    }
  82.   };
  83.   xhr.open('POST', 'test2.php', true);
  84.   xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
  85.   xhr.send('path='+dirname);
  86.  }
  87.  function readData(sData) {
  88.   if(sData) {
  89.    sData = eval(sData);
  90.    if(sData[0] == 0) {
  91.     document.getElementById('loader').style.visibility = 'hidden';
  92.     document.getElementById('but').style.display = 'inline';
  93.     alert(sData[1][0]);
  94.    } else if(sData[0] == 1) {
  95.     window.setTimeout('dirselect('+xhr.response+')', 500);
  96.    } else {
  97.     alert('erreur inattendue!');
  98.    }
  99.   } else {
  100.    alert('erreur inattendue!');
  101.   }
  102.  }
  103.  function dirselect(list) {
  104.   loader = document.getElementById('loader');
  105.   loader.style.visibility = 'hidden';
  106.   list = eval(list);
  107.   list = list[1];
  108.   if(typeof(list) !== 'undefined') {
  109.    el = document.getElementsByTagName('form')[0];
  110.    parent = document.createElement('select');
  111.    parent.setAttribute('onChange', 'activeselect=this;dirname=dirname+\'/\'+this.value;requete();');
  112.    el.appendChild(parent);
  113.    enfant = document.createElement('option');
  114.    enfant.setAttribute('value', ' ');
  115.    enfant.innerHTML = '   ';
  116.    parent.appendChild(enfant);
  117.    for(i=1; i<=list.length; i++) {
  118.     enfant = document.createElement('option');
  119.     enfant.setAttribute('value', list[i-1]);
  120.     enfant.innerHTML = list[i-1];
  121.     parent.appendChild(enfant);
  122.    }
  123.    inputpath = document.getElementById('inputpath');
  124.    infile = document.getElementById('inputfile');
  125.    but = document.getElementById('but');
  126.    inputpath.value = dirname;
  127.    el.appendChild(infile);
  128.    el.appendChild(but);
  129.    but.style.display = 'inline';
  130.   } else {
  131.    document.getElementById('but').style.display = 'inline';
  132.   }
  133.  }
  134.  function veriffile() {
  135.   inputpath = document.getElementById('inputpath');
  136.   if(inputpath.value == '') {
  137.    alert('sélectionnez un dossier');
  138.    return false;
  139.   } else {
  140.    return true;
  141.   }
  142.  }
  143. </script>
  144. </head>
  145. <body>
  146.  <form name="test" enctype="multipart/form-data" method="post" action="upload.php" onsubmit="return veriffile();">
  147.   <input type="hidden" name="path" value="" id="inputpath" />
  148.   <select onChange="activeselect=this;dirname=this.value;requete();">
  149.    <option value=" ">   </option>
  150.    <option value="Clients">Clients</option>
  151.    <option value="Technologies">Technologies</option>
  152.    <option value="Outils">Outils</option>
  153.   </select>
  154.   <input type="file" name="userfile" value='' id="inputfile" />
  155.   <button type="submit" id="but">Envoyer !</button>
  156.  </form>
  157.  <img style="font-size: 13px; font-weight: bold; visibility: hidden;" alt="loading..." src="loader.gif" id="loader" />
  158. </body>
  159. </html>


 
 
Fichier test2.php :
 

Code :
  1. <?php
  2. function ScanDirectory($Directory) {
  3. $i = 0;
  4. $list_dir = array();
  5. $MyDirectory = opendir($Directory);
  6. while($Entry = @readdir($MyDirectory)) {
  7.  if(is_dir($Directory.'/'.$Entry) && $Entry != '.' && $Entry != '..') {
  8.   $list_dir[$i] = $Entry;
  9.   $i++;
  10.  }
  11. }
  12. closedir($MyDirectory);
  13. return $list_dir;
  14. }
  15. if(isset($_POST['path'])) {
  16. $path = './'.$_POST['path'];
  17. $etape = 1;
  18. $json = json_encode(array($etape, ScanDirectory($path)));
  19. echo $json;
  20. } else {
  21. $etape = 0;
  22. $errmessage = 'requête corrompue!';
  23. $json = json_encode(array($etape, $errmessage));
  24. echo $json;
  25. }
  26. ?>


 
Il te faut donc créer un fichier upload.php (d'après le manuel) :
 

Code :
  1. <?php
  2. if(isset($_POST['path'])) {
  3. $path = './'.$_POST['path'];
  4. $uploadfile = $path . basename($_FILES['userfile']['name']);
  5. if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
  6.  echo 'fichier téléchargé avec succès.';
  7. } else {
  8.  echo 'Attaque potentielle par téléchargement de fichiers.'
  9. }
  10. } else {
  11. echo 'Aucun dossier de destination sélectionné.';
  12. }
  13. ?>


Message édité par MaybeEijOrNot le 05-11-2013 à 21:06:13
n°2209372
gasolina
Posté le 06-11-2013 à 09:33:36  profilanswer
 

J'ai testé ton code tout marche nickel, il y a juste à rajouter un ; à la ligne 9 du upload.php et cela fonctionne.
 
Alleluiaaaaaa :jap:
 
Merci pour tout :)  
 
 
Maintenant j'ai plus qu'à travailler le code de upload.php pour faire ce que je veux précisément et à rajouter des critères qui s'ajouterons à ma base de données mais ça je l'ai presque finis  
 
Respect pour ton aide :jap: ^^

n°2209413
gasolina
Posté le 06-11-2013 à 15:26:07  profilanswer
 

J'ai une question, pour toi est ce possible d'ajouter un bouton créer dossier qui ajoutera un dossier en fonction de notre choix dans l’arborescence
 
Merci d'avance de ta réponse

n°2209422
MaybeEijOr​Not
but someone at least
Posté le 06-11-2013 à 15:51:05  profilanswer
 
n°2210022
gasolina
Posté le 12-11-2013 à 16:53:05  profilanswer
 

J'ai une question sur autre chose, je suis en même temps sur un formulaire de recherche et je souhaite pouvoir rechercher les documents entre deux dates, la partie SELECT qui va chercher sur le serveur entre deux dates fonctionnent à l'aide de :
 

Code :
  1. WHERE date_doc >=  "2013-09-22" AND date_doc <=  "2013-09-25"


 
Cependant je n'arrive pas à ressortir les valeurs de $date1 et $date2 de mon formulaire afin de les placer dans la requête.
 
Voici le code de base du calendrier :
 

Code :
  1. <html>
  2. <head>
  3.  <script type="text/javascript" src="calendrier.js"></script>
  4.  <link rel="stylesheet" media="screen" type="text/css" title="Design" href="design.css" />
  5. </head>
  6. <body>
  7.  <!-- Tableau obligatoire ! C'est lui qui contiendra le calendrier ! -->
  8.  <table class="ds_box" cellpadding="0" cellspacing="0" id="ds_conclass" style="display: none;">
  9.   <tr>
  10.    <td id="ds_calclass"></td>
  11.   </tr>
  12.  </table>
  13.  <!-- Les champs texte avec le code "onclick" déclenchant le script -->
  14.  <input type="text" name="date1" onclick="ds_sh(this);" />
  15.          <input type="text" name="date2" onclick="ds_sh(this);" />
  16. </body>
  17. </html>


 
 
Et voici calendrier.js :
 

Code :
  1. // <!-- <![CDATA[
  2. // Set the initial date.
  3. var ds_i_date = new Date();
  4. ds_c_month = ds_i_date.getMonth() + 1;
  5. ds_c_year = ds_i_date.getFullYear();
  6. // Get Element By Id
  7. function ds_getel(id) {
  8. return document.getElementById(id);
  9. }
  10. // Get the left and the top of the element.
  11. function ds_getleft(el) {
  12. var tmp = el.offsetLeft;
  13. el = el.offsetParent
  14. while(el) {
  15.  tmp += el.offsetLeft;
  16.  el = el.offsetParent;
  17. }
  18. return tmp;
  19. }
  20. function ds_gettop(el) {
  21. var tmp = el.offsetTop;
  22. el = el.offsetParent
  23. while(el) {
  24.  tmp += el.offsetTop;
  25.  el = el.offsetParent;
  26. }
  27. return tmp;
  28. }
  29. setTimeout(
  30. function(){
  31.  // Output Element
  32.  ds_oe = ds_getel('ds_calclass');
  33.  // Container
  34.  ds_ce = ds_getel('ds_conclass');
  35. }, 100
  36. );
  37. // Output Buffering
  38. var ds_ob = '';
  39. function ds_ob_clean() {
  40. ds_ob = '';
  41. }
  42. function ds_ob_flush() {
  43. ds_oe.innerHTML = ds_ob;
  44. ds_ob_clean();
  45. }
  46. function ds_echo(t) {
  47. ds_ob += t;
  48. }
  49. var ds_element; // Text Element...
  50. var ds_monthnames = [
  51. 'Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin',
  52. 'Juillet', 'Aout', 'Septembre', 'Octobre', 'Novembre', 'Décembre'
  53. ]; // You can translate it for your language.
  54. var ds_daynames = [
  55. 'Dim', 'Lun', 'Mar', 'Me', 'Jeu', 'Ven', 'Sam'
  56. ]; // You can translate it for your language.
  57. // Calendar template
  58. function ds_template_main_above(t) {
  59. return '<table cellpadding="3" cellspacing="1" class="ds_tbl">'
  60.   + '<tr>'
  61.   + '<td class="ds_head" style="cursor: pointer" onclick="ds_py();">&lt;&lt;</td>'
  62.   + '<td class="ds_head" style="cursor: pointer" onclick="ds_pm();">&lt;</td>'
  63.   + '<td class="ds_head" style="cursor: pointer" onclick="ds_hi();" colspan="3">[Fermer]</td>'
  64.   + '<td class="ds_head" style="cursor: pointer" onclick="ds_nm();">&gt;</td>'
  65.   + '<td class="ds_head" style="cursor: pointer" onclick="ds_ny();">&gt;&gt;</td>'
  66.   + '</tr>'
  67.   + '<tr>'
  68.   + '<td colspan="7" class="ds_head">' + t + '</td>'
  69.   + '</tr>'
  70.   + '<tr>';
  71. }
  72. function ds_template_day_row(t) {
  73. return '<td class="ds_subhead">' + t + '</td>';
  74. // Define width in CSS, XHTML 1.0 Strict doesn't have width property for it.
  75. }
  76. function ds_template_new_week() {
  77. return '</tr><tr>';
  78. }
  79. function ds_template_blank_cell(colspan) {
  80. return '<td colspan="' + colspan + '"></td>'
  81. }
  82. function ds_template_day(d, m, y) {
  83. return '<td class="ds_cell" onclick="ds_onclick(' + d + ',' + m + ',' + y + ')">' + d + '</td>';
  84. // Define width the day row.
  85. }
  86. function ds_template_main_below() {
  87. return '</tr>' + '</table>';
  88. }
  89. // This one draws calendar...
  90. function ds_draw_calendar(m, y) {
  91. // First clean the output buffer.
  92. ds_ob_clean();
  93. // Here we go, do the header
  94. ds_echo (ds_template_main_above(ds_monthnames[m - 1] + ' ' + y));
  95. for (i = 0; i < 7; i ++) {
  96.  ds_echo (ds_template_day_row(ds_daynames[i]));
  97. }
  98. if (m == 1 || m == 3 || m == 5 || m == 7 || m == 8 || m == 10 || m == 12) {
  99.  days = 31;
  100. }
  101. else if (m == 4 || m == 6 || m == 9 || m == 11) {
  102.  days = 30;
  103. }
  104. else {
  105.  days = (y % 4 == 0) ? 29 : 28;
  106. }
  107. var first_day = new Date(y, (m-1), 1).getDay();
  108. var first_loop = 1;
  109. // Start the first week
  110. ds_echo (ds_template_new_week());
  111. // If sunday is not the first day of the month, make a blank cell...
  112. if (first_day != 0) {
  113.  ds_echo (ds_template_blank_cell(first_day));
  114. }
  115. var j = first_day;
  116. for (i = 0; i < days; i ++) {
  117.  // Today is sunday, make a new week.
  118.  // If this sunday is the first day of the month,
  119.  // we've made a new row for you already.
  120.  if (j == 0 && !first_loop) {
  121.   // New week!!
  122.   ds_echo (ds_template_new_week());
  123.  }
  124.  ds_echo (ds_template_day(i + 1, m, y)); // Make a row of that day!
  125.  first_loop = 0; // This is not first loop anymore...
  126.  // What is the next day?
  127.  j ++;
  128.  j %= 7;
  129. }
  130. ds_echo (ds_template_main_below()); // Do the footer
  131. ds_ob_flush();                      // And let's display..
  132. ds_ce.scrollIntoView();             // Scroll it into view.
  133. }
  134. // A function to show the calendar.
  135. // When user click on the date, it will set the content of t.
  136. function ds_sh(t) {
  137. // Set the element to set...
  138. ds_element = t;
  139. // Make a new date, and set the current month and year.
  140. var ds_sh_date = new Date();
  141. ds_c_month = ds_sh_date.getMonth() + 1;
  142. ds_c_year = ds_sh_date.getFullYear();
  143. // Draw the calendar
  144. ds_draw_calendar(ds_c_month, ds_c_year);
  145. // To change the position properly, we must show it first.
  146. ds_ce.style.display = '';
  147. // Move the calendar container!
  148. the_left = ds_getleft(t);
  149. the_top = ds_gettop(t) + t.offsetHeight;
  150. ds_ce.style.left = the_left + 'px';
  151. ds_ce.style.top = the_top + 'px';
  152. // Scroll it into view.
  153. ds_ce.scrollIntoView();
  154. }
  155. // Hide the calendar.
  156. function ds_hi() {ds_ce.style.display = 'none';}
  157. // Moves to the next month...
  158. function ds_nm() {
  159. // Increase the current month.
  160. ds_c_month ++;
  161. // We have passed December, let's go to the next year.
  162. // Increase the current year, and set the current month to January.
  163. if (ds_c_month > 12) {
  164.  ds_c_month = 1;
  165.  ds_c_year++;
  166. }
  167. // Redraw the calendar.
  168. ds_draw_calendar(ds_c_month, ds_c_year);
  169. }
  170. // Moves to the previous month...
  171. function ds_pm() {
  172. ds_c_month = ds_c_month - 1; // Can't use dash-dash here, it will make the page invalid.
  173. // We have passed January, let's go back to the previous year.
  174. // Decrease the current year, and set the current month to December.
  175. if (ds_c_month < 1) {
  176.  ds_c_month = 12;
  177.  ds_c_year = ds_c_year - 1; // Can't use dash-dash here, it will make the page invalid.
  178. }
  179. // Redraw the calendar.
  180. ds_draw_calendar(ds_c_month, ds_c_year);
  181. }
  182. // Moves to the next year...
  183. function ds_ny() {
  184. ds_c_year++; // Increase the current year.
  185. ds_draw_calendar(ds_c_month, ds_c_year); // Redraw the calendar.
  186. }
  187. // Moves to the previous year...
  188. function ds_py() {
  189. // Decrease the current year.
  190. ds_c_year = ds_c_year - 1;               // Can't use dash-dash here, it will make the page invalid.
  191. ds_draw_calendar(ds_c_month, ds_c_year); // Redraw the calendar.
  192. }
  193. // Format the date to output.
  194. function ds_format_date(d, m, y) {
  195. m2 = '00' + m; // 2 digits month.
  196. m2 = m2.substr(m2.length - 2);
  197. d2 = '00' + d; // 2 digits day.
  198. d2 = d2.substr(d2.length - 2);
  199. return d2 + '/' + m2 + '/' + y;
  200. }
  201. // When the user clicks the day.
  202. function ds_onclick(d, m, y) {
  203. ds_hi(); // Hide the calendar.
  204. if (typeof(ds_element.value) != 'undefined') {
  205.  // Set the value of it, if we can.
  206.  ds_element.value = ds_format_date(d, m, y);
  207. }
  208. else if (typeof(ds_element.innerHTML) != 'undefined') {
  209.  // Maybe we want to set the HTML in it.
  210.  ds_element.innerHTML = ds_format_date(d, m, y);
  211. }
  212. else {
  213.  // I don't know how should we display it, just alert it to user.
  214.  alert (ds_format_date(d, m, y));
  215. }
  216. }
  217. // ]]> -->


 
 
 
Merci d'avance de votre aide

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Suivante

Aller à :
Ajouter une réponse
 

Sujets relatifs
Extraire les donnees d'un fichier mdf[C] Comment sauvegarder lors d'un remplissage de fichier?
vérifier si un fichier a été modifiéfichier audio grâce à formulaire Access et Media Player
Patrons pour détecter les titres et les sous tires d'un fichier texte[PHP] Upload multiples : variables ne passent pas si trop de volume
Suppression d'un fichier sur le réseau par commande dosOuvrir un fichier Excel (vba)
Créer un fichier et l'envoyer en vbaInclure en php un texte contenu dans un fichier dropbox
Plus de sujets relatifs à : Upload fichier avec choix dossier destination


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