Anonymus Posté 27 Avril 2005 Partager Posté 27 Avril 2005 Bonjour, Je cherche un script en php à mettre sur un serveur, qui permette de choisir un dossier sur le disque dur, et de l'uploader sur le serveur. Mais il faudrait qu'il puisse récupérer l'ensemble du dossier, et pas seulement un fichier. Merci d'avance Anonymus. Lien vers le commentaire Partager sur d’autres sites More sharing options...
bastoun Posté 27 Avril 2005 Partager Posté 27 Avril 2005 Quelle taille va faire le répertoire en moyenne ? Parce que attention avec les limitations en taille et en temps d'exécution selon ton hébergeur c'est déja là que tu risque de bloquer. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Anonymus Posté 27 Avril 2005 Auteur Partager Posté 27 Avril 2005 Pour la taille du répertoire, ce n'est pas un problème. Je définis moi meme la taille maxi, et idem pour le temps. Mais ca devrait pas faire plus de quelques Ko, mais un bon paquet de .txt, avec le problème que c'est à destination de personnes qui ne connaissent pas grand chose à tout ca Lien vers le commentaire Partager sur d’autres sites More sharing options...
Country Posté 27 Avril 2005 Partager Posté 27 Avril 2005 Que l'on me corrige si je me trompe, mais je ne croit pas que cela soit possible. Pour envoyer un fichier du client au serveur de cette façon il doit obligatoirement être envoyé à partir d'un input file. Pour ma part lorsque j'ai plusieurs fichiers à envoyer sur un serveur j'en fait un fichier zip, que le script dézzipe côté serveur avec la librairie pclzip. http://www.phpconcept.net/pclzip/ Lien vers le commentaire Partager sur d’autres sites More sharing options...
Antoine Cailliau Posté 27 Avril 2005 Partager Posté 27 Avril 2005 Je ne pense pas qu'il soit possible de faire une indexation des fichiers sur un serveur local. Je sais que c'est possible grâce aux activeX (en ASP donc) mais en PHP je ne pense pas Lien vers le commentaire Partager sur d’autres sites More sharing options...
Thanh Posté 27 Avril 2005 Partager Posté 27 Avril 2005 +1 Je connais pas de moyen via les méthodes normales JS et PHP. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Thanh Posté 27 Avril 2005 Partager Posté 27 Avril 2005 Par contre il existe une classe en JAVA qui le fait je crois: http://www.javazoom.net/applets/jclientupl...ientupload.html Lien vers le commentaire Partager sur d’autres sites More sharing options...
Anonymus Posté 27 Avril 2005 Auteur Partager Posté 27 Avril 2005 Bon.. J'ai passé pas mal de temps à chercher, et je n'ai pas trouvé.. Il y a différents trucs en java, comme ceci par exemple : http://www.radinks.com/upload/demo.php Ceci dit, ca ne répond pas à ma question. A savoir si c'est possible, je pense que si. Avec javascript, il est possible de lister un dossier, il ne resterait plus qu'à faire une boucle pour récupérer l'ensemble des dossiers... Bon.. Je vais jeter un oeil de ce coté. Si quelqu'un a une idée, je suis (toujours) preneur Merci Lien vers le commentaire Partager sur d’autres sites More sharing options...
Tizel Posté 27 Avril 2005 Partager Posté 27 Avril 2005 Je pense pas que ce soit possible en javascript/php car cela pose de sérieux problèmes de sécurité... Si tu peux accéder au contenu d'un répertoire, il n'y a pas de raison que tu ne puisse pas accéder à l'ensemble d'un disque dur... Tizel Lien vers le commentaire Partager sur d’autres sites More sharing options...
Dash Posté 27 Avril 2005 Partager Posté 27 Avril 2005 Le javascript tourne cote client. Idem pour les applications java. Est-ce possible en PHP ? Via PHP GTK tu devrais pouvoir realiser une application client. C'est possible mais le mieux pour realiser un client 'ftp' - puisque c'est de ca qu'il s'agit - serait d'utiliser un langage autre que PHP. Une "bete" interface en Visual Basic, Java ou Delphi... Lien vers le commentaire Partager sur d’autres sites More sharing options...
Thanh Posté 27 Avril 2005 Partager Posté 27 Avril 2005 Le javascript tourne en client ok, mais je Java lui tourne à partir de la machine virtuelle qui elle dispose d'api nécessaire pour ce genre d'application c'est pourquoi la plupart des intranets sont fait en Java. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Anonymus Posté 27 Avril 2005 Auteur Partager Posté 27 Avril 2005 Il est pourtant facile de trouver l'arborescence d'un disque dur, via ActiveX, c'est vrai. Mais ca m'irait. le problème est que j'arrive bien à 'avoir' le répertoire en question, reste plus qu'à récupérer la valeur, puis... à lister les fichiers (j'ai pas fini, quoi..) <html><head><title>Selection de repertoire</title><style type="text/css">body { font-family : Tahoma; font-size : xx-small;}a, a:hover, a:active { font-family : Tahoma; font-size : xx-small;}div { font-family : Tahoma; font-size : xx-small; border : 1px solid #000000; padding : 5px;}</style><script language="JavaScript">var FSO;var sOut = "";var nl = "<br>" + String.fromCharCode(13);var ImgPath = "Img/";var sImgFolder = " <img src=\"" + ImgPath + "folder.gif\"";sImgFolder += " width=\"15\" height=\"13\" border=\"0\"> ";var sImgFolderUp = " <img src=\"" + ImgPath + "folder_up.gif\"";sImgFolderUp += " width=\"15\" height=\"13\" border=\"0\"> ";var sImgDrive = " <img src=\"" + ImgPath + "drive.gif\"";sImgDrive += " width=\"15\" height=\"13\" border=\"0\"> ";var sImgDriveA = " <img src=\"" + ImgPath + "drive_a.gif\"";sImgDriveA += " width=\"15\" height=\"13\" border=\"0\"> ";var DisplayPath = "";function replaceAll(inSTR, inTOK, inREP) { var s; s = inSTR + ""; while (s.indexOf(inTOK) >= 0) { s = s.replace(inTOK, "§"); }; while (s.indexOf("§") >= 0) { s = s.replace("§", inREP); }; return s;};function getQuery(inINDX){ var queryString = location.search; if (queryString != "") { var data = queryString.slice(1,queryString.length); var aData = data.split("&"); var aOut = aData[inINDX].split("="); return aOut[1]; } else { return "NoData"; }};function GetCurrentFolder() { return DisplayPath;};function GoToDrives() { DisplayPath = ""; GetDrives();};function GoToFolder(inFOLDER) { DisplayPath = inFOLDER; GetFolders();};function GetFolders() { // Balayage Repertoires var rep, sRep, i, t; sOut = ""; sOut += DisplayPath + "<br><br>"; t = DisplayPath.substring(0, DisplayPath.length - 1); t = t.substring(0, t.lastIndexOf(String.fromCharCode(92)) + 1); if (t + "" != "") { sOut += sImgFolderUp + "<a href=\"javascript:GoToFolder('"; sOut += replaceAll(t, String.fromCharCode(92), "\\\\") + "');\" border=\"0\">"; sOut += "Repertoire Parent</a><br>"; } else { sOut += sImgFolderUp + "<a href=\"javascript:GoToDrives();\" border=\"0\">"; sOut += "Repertoire Parent</a><br>" } try { rep = FSO.GetFolder(DisplayPath); var rOK = true; } catch (e) { var rOK = false; } if (rOK) { sRep = new Enumerator(rep.SubFolders); if (sRep.atEnd()) { sOut += " Pas de sous-repertoires"; } else { for (i = 0; !sRep.atEnd(); sRep.moveNext()) { sOut += sImgFolder + "<a href=\"javascript:GoToFolder('"; sOut += replaceAll(sRep.item(), String.fromCharCode(92), "\\\\") + "\\\\');\" border=\"0\">"; sOut += sRep.item() + "\\</a>" + nl; }; } } else { sOut += " Pas de sous-repertoires"; } document.getElementById("SRInterface").innerHTML = sOut;}function GetDrives() { // Balayage Disques var drv, i; sOut = ""; sOut += "Poste de travail<br><br>"; var drvGlo = new Enumerator(FSO.Drives); for (i = 0; !drvGlo.atEnd(); drvGlo.moveNext()) { drv = drvGlo.item(); if (drv.DriveType == 2) { sOut += sImgDrive + "<a href=\"javascript:GoToFolder('"; sOut += drv.DriveLetter + ":\\\\');\" border=\"0\">"; sOut += drv.DriveLetter + ":\\</a>" + nl; } else if (drv.DriveType == 1) { sOut += sImgDriveA + "<a href=\"javascript:GoToFolder('"; sOut += drv.DriveLetter + ":\\\\');\" border=\"0\">"; sOut += drv.DriveLetter + ":\\</a>" + nl; } }; document.getElementById("SRInterface").innerHTML = sOut;};function DoLoad() { var ActiveXOK; try { var FSOT = new ActiveXObject("Scripting.FileSystemObject"); ActiveXOK = true; } catch (e) { ActiveXOK = false; } if (ActiveXOK) { FSOT = null; FSO = new ActiveXObject("Scripting.FileSystemObject"); GetDrives(); } else { var lf = "<br>" + String.fromCharCode(13); sOut = ""; sOut += "Ce script est dedié Internet Explorer." + lf; sOut += "L'utilisation de ce script nécessite une configuration de la securite de votre navigateur." + lf; sOut += "Allez dans Menu Outils > Options Internet >"; sOut += " Sécurité > Personnaliser le niveau > Contrôles ActiveX et plugins" + lf; sOut += "Authorisez l'utilisation des composants ActiveX." document.getElementById("SRInterface").innerHTML = sOut; }};</script></head><body onLoad="DoLoad();"><div id="SRInterface"></div><br><br><a href="javascript:alert(GetCurrentFolder());" border="0">Recuperer le repertoire en cours (javascript:GetCurrentFolder();)</a><br></body></html> Et à ce sujet, comment faire pour récupérer la valeur GetCurrentFolder() dans un champ input ? <input type=text name=truc value='??'> Merci. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Vincent Posté 27 Avril 2005 Partager Posté 27 Avril 2005 Et à ce sujet, comment faire pour récupérer la valeur GetCurrentFolder() dans un champ input ?<input type=text name=truc value='??'> Merci. <{POST_SNAPBACK}> ca c'est le B A BA du javascript, a l'inverse du truc que tu as posté qui est pas mal "balaise" document.forms['nomduform'].elements['nomduchamps'].value = GetCurrentFolder() (attention a mettre une balise <Form> si tu as un champs de formulaire) Lien vers le commentaire Partager sur d’autres sites More sharing options...
Anonymus Posté 27 Avril 2005 Auteur Partager Posté 27 Avril 2005 Ce qui donne ceci : <form name=machin method=POST ><input type=hidden name=truc value=""><input type=submit name=submit value=submit onClick="javascript:document.forms['machin'].elements['truc'].value = GetCurrentFolder()"></form> et que l'on peut récupérer tout simplement avec un : <?$rep = $_POST['truc']?> (on se rattrappe comme on peut ) Bon, je crois que Filezilla est pas cher Je vais p'tete bien gagner du temps Merci tout de meme Anonymus. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant