Gestionnaire de fichiers en php
Fermé
killermano66
Messages postés
233
Date d'inscription
jeudi 17 janvier 2008
Statut
Membre
Dernière intervention
25 novembre 2010
-
11 mars 2009 à 15:36
pyschopathe Messages postés 1974 Date d'inscription dimanche 2 mars 2008 Statut Membre Dernière intervention 22 mars 2010 - 20 mars 2009 à 18:45
pyschopathe Messages postés 1974 Date d'inscription dimanche 2 mars 2008 Statut Membre Dernière intervention 22 mars 2010 - 20 mars 2009 à 18:45
A voir également:
- Gestionnaire de fichiers en php
- Gestionnaire de périphérique - Guide
- Renommer plusieurs fichiers en même temps - Guide
- Gestionnaire de fichier - Télécharger - Gestion de fichiers
- Wetransfer gratuit fichiers lourd - Guide
- Explorateur de fichiers - Guide
7 réponses
pyschopathe
Messages postés
1974
Date d'inscription
dimanche 2 mars 2008
Statut
Membre
Dernière intervention
22 mars 2010
135
11 mars 2009 à 15:56
11 mars 2009 à 15:56
Je n'ai pas lu ton code, mais pour lister le contenu des dossiers de manière dynamique, un peu d'AJAX serait utile : au clic sur le dossier, tu appelles ton script de listing sur ce dossier.
killermano66
Messages postés
233
Date d'inscription
jeudi 17 janvier 2008
Statut
Membre
Dernière intervention
25 novembre 2010
41
11 mars 2009 à 15:58
11 mars 2009 à 15:58
Merci de ta réponse.
Le soucis c'est que je ne connais pas du tout l'AJAX donc je cherche une façon de le faire en php même si ça a l'air compromis.
Le soucis c'est que je ne connais pas du tout l'AJAX donc je cherche une façon de le faire en php même si ça a l'air compromis.
pyschopathe
Messages postés
1974
Date d'inscription
dimanche 2 mars 2008
Statut
Membre
Dernière intervention
22 mars 2010
135
11 mars 2009 à 16:05
11 mars 2009 à 16:05
Ce ne sera pas possible en PHP de manière dynamique puisque ta page est générée de manière statique. À moins que tu ne veuilles lister le contenu de tous les dossiers récursivement avant d'afficher, mais ça pourrait être très long !
En gros ça ferait :
C'est du pseudo-code, mais ça montre l'idée... En cas de nombreux dossiers et fichiers, l'exécution va être très longue et probablement inutile puisque l'utilisateur ne va pas se balader dans toute l'arborescence.
AJAX pour ce que tu veux faire n'est pas forcément très compliqué, je te conseille d'y jeter un coup d'oeil... Il te suffit d'appeler ton script lister.php avec en paramètre le chemin du répertoire à lister et de récupérer la liste des fichiers/dossiers. Pas si compliqué que ça en a l'air.
En gros ça ferait :
fonction lister( repertoire ) debut pour tous les fichiers f de repertoire faire afficher f.nom si f est un répertoire alors lister( f ) finsi finpour fin
C'est du pseudo-code, mais ça montre l'idée... En cas de nombreux dossiers et fichiers, l'exécution va être très longue et probablement inutile puisque l'utilisateur ne va pas se balader dans toute l'arborescence.
AJAX pour ce que tu veux faire n'est pas forcément très compliqué, je te conseille d'y jeter un coup d'oeil... Il te suffit d'appeler ton script lister.php avec en paramètre le chemin du répertoire à lister et de récupérer la liste des fichiers/dossiers. Pas si compliqué que ça en a l'air.
killermano66
Messages postés
233
Date d'inscription
jeudi 17 janvier 2008
Statut
Membre
Dernière intervention
25 novembre 2010
41
11 mars 2009 à 16:12
11 mars 2009 à 16:12
Ben disons que l'AJAX c'est pas faute d'avoir essayer mais ça reste un certains mystère pour moi. Je n'ai pas vraiment de mal avec des langage comme le C par exemple mais l'AJAX me parraît être un bordel monstrueux.
Ensuite peut être me suis-je mal documenter. Mais les bon tutos ne courent pas les rues d'aprés mes longues recherches.
Si tu as un site qui me permettrait de comprendre réellement le fonctionnement de l'AJAX, je suis bien entendue preneur.
Merci bien ;)
Ensuite peut être me suis-je mal documenter. Mais les bon tutos ne courent pas les rues d'aprés mes longues recherches.
Si tu as un site qui me permettrait de comprendre réellement le fonctionnement de l'AJAX, je suis bien entendue preneur.
Merci bien ;)
pyschopathe
Messages postés
1974
Date d'inscription
dimanche 2 mars 2008
Statut
Membre
Dernière intervention
22 mars 2010
135
11 mars 2009 à 16:17
11 mars 2009 à 16:17
Jette un oeil à ce site : https://www.xul.fr/xml-ajax.html
Je trouve que le tuto est bien détaillé et il devrait t'apporter les compétences suffisantes pour faire ce que tu veux.
Je trouve que le tuto est bien détaillé et il devrait t'apporter les compétences suffisantes pour faire ce que tu veux.
killermano66
Messages postés
233
Date d'inscription
jeudi 17 janvier 2008
Statut
Membre
Dernière intervention
25 novembre 2010
41
11 mars 2009 à 16:18
11 mars 2009 à 16:18
Ok, merci je lis ça dessuite.
@+
@+
pyschopathe
Messages postés
1974
Date d'inscription
dimanche 2 mars 2008
Statut
Membre
Dernière intervention
22 mars 2010
135
11 mars 2009 à 16:19
11 mars 2009 à 16:19
De rien, refais signe si tu as besoin d'aide, et n'hésite pas à poster la solution (parce que je suis sûr que tu vas trouver ^^), ça pourrait être utile à quelqu'un d'autre.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
killermano66
Messages postés
233
Date d'inscription
jeudi 17 janvier 2008
Statut
Membre
Dernière intervention
25 novembre 2010
41
11 mars 2009 à 16:50
11 mars 2009 à 16:50
Bon, j'ai a peu prés saisis le principe et j'en suis venu à ce script :
Bon ok, il ne fait rien mais je pense qu'il n'est pas faux.
Maintenant je ne vois pas quoi rajouter ici :
if(xhr.status == 200)
{
//La requête est prête à être envoyée
}
Pour que la page aille chercher les données sur un serveur distant.
Voilà voilà si tu as des remarques.
Merci ;)
//---------------------------------------------------------------------------- // Test pour les divers navigateurs //---------------------------------------------------------------------------- if(windows.XMLHttpRequest) { xhr = new XMLHttpRequest(); //Pour firefox } else { xhr = new ActiveXObject("Microsoft.XMLHTTP"); //IE } //---------------------------------------------------------------------------- //Attente de la réponse passage de l'état 1 à 4 //---------------------------------------------------------------------------- xhr.onreadystatechange = function() { if(xhr.readyState == 4) //Si requete terminé { if(xhr.status == 200) { //La requête est prête à être envoyée } else { // Pas bon, on affiche une erreur } } else { //Attente de la réponse } }
Bon ok, il ne fait rien mais je pense qu'il n'est pas faux.
Maintenant je ne vois pas quoi rajouter ici :
if(xhr.status == 200)
{
//La requête est prête à être envoyée
}
Pour que la page aille chercher les données sur un serveur distant.
Voilà voilà si tu as des remarques.
Merci ;)
pyschopathe
Messages postés
1974
Date d'inscription
dimanche 2 mars 2008
Statut
Membre
Dernière intervention
22 mars 2010
135
20 mars 2009 à 18:36
20 mars 2009 à 18:36
le xhr.status == 200 signifie que le serveur a renvoyé le code 200 OK, donc que la réponse a été reçue sans erreur (si tu essaie d'accéder à une page inexistante, tu recevras le célèbre 404 NOT FOUND).
killermano66
Messages postés
233
Date d'inscription
jeudi 17 janvier 2008
Statut
Membre
Dernière intervention
25 novembre 2010
41
12 mars 2009 à 09:32
12 mars 2009 à 09:32
Bonjour à tous,
Je vous met le code direct et je vous explique en dessous.
Donc, ce code fonctionne trés bien, je crée des liens qui me listent le contenu de mon répertoire P/Travail grace à une boucle while. A chacun de ces lien j'ascocie la fonction AJAX submitForm() qui me permet de changer l'apparence de la page mère sans la recharger en incluant une autre page grâce à req.open("GET", "connection2.php", true);
Donc ceci est vraiment un test car mon but est de charger le contenue des sous dossier de P/Travail grâce à cette même méthode, sans recharger la page et celà de façon dynamique.
Mais j'avous bloquer, je ne vois pas comment faire pour récupérer les donnée d'un serveur distant et les afficher grâce à AJAX.
Récupérer un fichier et l'afficher est une chose, récupérer tous le comptenu d'un dossier pour l'afficher en est une autre.
Je vous fait un schéma de mon P/Travail :
En espérant trouver de l'aide. Je vous remercis à l'avançe ;)
@+
Je vous met le code direct et je vous explique en dessous.
<?php session_start(); $_SESSION['login']=$_POST['login']; $login = $_SESSION['login']; $psw = $_POST['psw']; ?> <html> <head> <script language="javascript"> function submitForm() { var req = null; document.getElementById("zone").innerHTML = "Started..."; if (window.XMLHttpRequest) { req = new XMLHttpRequest(); if (req.overrideMimeType) { req.overrideMimeType('text/xml'); } } else if (window.ActiveXObject) { try { req = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { req = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {} } } req.onreadystatechange = function() { document.getElementById("zone").innerHTML = "Wait server..."; if(req.readyState == 4) { if(req.status == 200) { document.getElementById("zone").innerHTML = "Received:" + req.responseText; } else { document.getElementById("zone").innerHTML="Error: returned status code " + req.status + " " + req.statusText; } } }; req.open("GET", "connection2.php", true); req.send(null); } </script> </head> <body> <?php //---------------------------------------------------------------------------------------------------- // Création des différents dossiers //---------------------------------------------------------------------------------------------------- @mkdir("/home/$login" ,0777); exec('mkdir /home/marchann/P'); exec('chmod -R 777 /home/marchann/P'); @mkdir("/home/$login/K/" ,0777); //---------------------------------------------------------------------------------------------------- // Montage des partitions / Identification //---------------------------------------------------------------------------------------------------- exec("smbmount //xxx.xxx.xxx.xx/p$login /home/$login/P -o username=$login%$psw netbios=//xxx.xxx.xxx.xx/p$login"); exec("smbmount //xxx.xxx.xxx.xxx/STIDETU /home/$login/K -o username=$login%$psw netbios=//xxx.xxx.xxx.xxx/STIDETU"); echo "<b>Vous êtes identifié sous :</b> "; echo $_SESSION['login']; echo ('<br />+ <a href="deconection.php">Deconnection</a><br /><br />'); //---------------------------------------------------------------------------------------------------- // Liste le contenue de P //---------------------------------------------------------------------------------------------------- echo ('<fieldset><legend><b>Contenue de votre lecteur P: </b></legend><br />'); echo ('<table align="center" valign="top">'); //Private $nb_fichier = 0; //Initialisation du compteur de fichier/dossiers à 0 if($dossier = @opendir("./$login/P/Private/")) { echo '<tr><td>'; ?> <?php echo '<div id="zone">'; echo ('<fieldset><legend><b>Private</b></legend><br />'); echo ('+ <a href="create_dossierP.php" alt="Créer un nouveau dossier">Créer des nouveaux dossiers</a><br />'); echo ('+ <a href="ajouterPprivate.php" alt="Uploader un fichier dans P">Uploader des fichier</a><br />'); echo ('+ <a href="supressionP.php" alt="Supprimer des fichiers dans P">Supprimer des fichiers</a><br /><br />'); while(false !== ($fichier = readdir($dossier))) { if($fichier != '.' && $fichier != '..' && $fichier != 'index.php') { $nb_fichier++; //On incrémente le compteur de un echo '<li>'; ?> <a href="#" onclcik="submitForm()"> <?php echo $fichier; ?></a> </a></li> <?php // On relançe php } //end if } //end boucle (suite du code ... )
Donc, ce code fonctionne trés bien, je crée des liens qui me listent le contenu de mon répertoire P/Travail grace à une boucle while. A chacun de ces lien j'ascocie la fonction AJAX submitForm() qui me permet de changer l'apparence de la page mère sans la recharger en incluant une autre page grâce à req.open("GET", "connection2.php", true);
Donc ceci est vraiment un test car mon but est de charger le contenue des sous dossier de P/Travail grâce à cette même méthode, sans recharger la page et celà de façon dynamique.
Mais j'avous bloquer, je ne vois pas comment faire pour récupérer les donnée d'un serveur distant et les afficher grâce à AJAX.
Récupérer un fichier et l'afficher est une chose, récupérer tous le comptenu d'un dossier pour l'afficher en est une autre.
Je vous fait un schéma de mon P/Travail :
P/Travail : +Eudora (dossier) - Fichier 1 - Fichier 2 - Fichier 3 - Fichier 4 +FireFox (dossier) - Fichier 1 - Fichier 2 - Fichier 3 - Fichier 4 - Dossier 1 +Netscape (dossier)r) +fichier.txt etc ...
En espérant trouver de l'aide. Je vous remercis à l'avançe ;)
@+
killermano66
Messages postés
233
Date d'inscription
jeudi 17 janvier 2008
Statut
Membre
Dernière intervention
25 novembre 2010
41
13 mars 2009 à 08:15
13 mars 2009 à 08:15
UP.
pyschopathe
Messages postés
1974
Date d'inscription
dimanche 2 mars 2008
Statut
Membre
Dernière intervention
22 mars 2010
135
20 mars 2009 à 18:45
20 mars 2009 à 18:45
Il faudrait tout d'abord que tu nous indique ce que contient ta page connection2.php.
De la manière dont je vois les choses, il faut que cette page prenne en paramètre le chemin du dossier à lister (qu'il soit relatif : / correspond à ton PdT, ou absolu). Elle retourne ensuite un fichier xml ou texte contenant la liste des fichiers en précisant s'il s'agit d'un dossier ou non.
De la manière dont je vois les choses, il faut que cette page prenne en paramètre le chemin du dossier à lister (qu'il soit relatif : / correspond à ton PdT, ou absolu). Elle retourne ensuite un fichier xml ou texte contenant la liste des fichiers en précisant s'il s'agit d'un dossier ou non.