Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

lister un repertoire local

26 réponses
Avatar
Legeais Vincent
[Xpost afclp & fclp ; fu2 fclp]

Bonjour,

Je sais lister le contenu d'un répertoire distant, c'est à dire qui se
trouve au même endroit que le script php sur le serveur.

Par contre j'essaie de lister un répertoire local... mais en vain !
Je m'explique.
Je met mon script de listage en ligne sur le serveur qui m'héberge.
Ce script appelle la fonction de listage, mais au lieu d'avoir comme nom
de répertoire à lister quelque chose comme "photos" je met "C:/album/photos"
Et j'obtient alors l'erreur suivante :

Warning: opendir(C:/album/photos): failed to open dir: No such file or
directory in liste.php on line 24

Quelqu'un peut-il m'expliquer comment faire, svp ?
Merci

--
Vincent

10 réponses

1 2 3
Avatar
Legeais Vincent
Euh... si je comprends bien :
Vous avez un serveur A avec un serveur Web et PHP dessus...
Vous avez un ordinateur B avec un navigateur (IE ou Firefox ou autre)
Vous arrivez à afficher sur B dans votre navigateur une page fournie par
A qui liste le contenu d'un répertoire sur A
Vous n'arrivez PAS à afficher sur B dans votre navigateur une page
fournie par A qui listerait le contenu d'un répertoire sur B


C'est exactement ça.

Si c'est ça je trouve que c'est parfaitement normal...


Je suis d'accord que niveau sécurité c'est mieux de ne pas y avoir accès...
Mais moi j'aimerais bien !!! (voir ma réponse à Vincent Lascaux)

Le serveur web en php est incapable d'accéder "par magie" à votre poste
client.


Pourtant il y a bien des script qui propose de uploader des fichier et
qui ouvre une fenêtre de parcours des fichiers sur l'ordi du visiteur !!!

Pour faire ce que vous voulez, il faudrait plutot envisager :
1/ Une applet Java
2/ Du javascript signé (du javascript normal n'aura probablement pas le
droit de faire ça ?)
3/ Installer un 2e serveur web sur votre poste client local (B) et faire
dialoguer en HTTP A et B
4/ Oublier cette idée ;-)


Je suis preneur pour 1/ et pour 2/ mais je ne m'y connais pas assez en
Java (pour le JavaScript, je m'en sort un petit peu)
Donc si quelqu'un peut poursuivre dans cette voie (ou dans une autre qui
fonctionne !), ça m'intéresse !
Merci

--
Vincent

Avatar
Pozzo
Legeais Vincent wrote:
Y a-t-il un moyen autre pour pouvoir faire cela ?


Soit télécharger les photos sur ton site...
Soit comme dit plus haut : Java ou ActiveX du coté client (applet
incorporé dans le HTML)
De toutes façon la réponse ne viendra PAS de PHP...

--
Pozzo

Avatar
Pozzo
Legeais Vincent wrote:
Pourtant il y a bien des script qui propose de uploader des fichier et
qui ouvre une fenêtre de parcours des fichiers sur l'ordi du visiteur !!!


Tssss ca n'a RIEN n'a voir...
Si vous ecrivez un formulaire en utilisant la balise <input type="file">
alors le navigateur va gérer cela et affichera une zone de texte PLUS un
bouton pour parcourir votre disque. C'est intièrement géré par le
navigateur qd il rencontre cette balise (tout comme il sait qu'il doit
afficher une liste déroulante qd vous utilisez une balise <select>).

Et le navigateur tournant sur votre poste client vous propose de
parcourir votre disque local (tout comme le fait n'importe qu'elle
application graphique lorsque vous voulez faire un "enregistrer sous..."
par exemple

Pour faire ce que vous voulez, il faudrait plutot envisager :
1/ Une applet Java
2/ Du javascript signé (du javascript normal n'aura probablement pas le
droit de faire ça ?)
3/ Installer un 2e serveur web sur votre poste client local (B) et faire
dialoguer en HTTP A et B
4/ Oublier cette idée ;-)


Je suis preneur pour 1/ et pour 2/ mais je ne m'y connais pas assez en
Java (pour le JavaScript, je m'en sort un petit peu)


C'est du javascript de haut vol pour faire ça sans avoir de pb de
sécurité... avec du code javascript signée... si vous ne maitrisez pas
le concept ça va être délicat. Essayez de cherchez de la doc sur devedge
par exemple.

Donc si quelqu'un peut poursuivre dans cette voie (ou dans une autre qui
fonctionne !), ça m'intéresse !


Il va vous falloir apprendre à écrire une applet Java ou un ActiveX ...
pas moyen de faire autrement... comme il faut apprendre l'escalade avant
de vouloir grimper l'Everest (ou alors bonjour la chute...)

--
Pozzo


Avatar
Olivier Miakinen

Le serveur web en php est incapable d'accéder "par magie" à votre poste
client.


Pourtant il y a bien des script qui propose de uploader des fichier et
qui ouvre une fenêtre de parcours des fichiers sur l'ordi du visiteur !!!


Oui et non. Oui on peut bien parcourir son disque dur pour chercher un
fichier à uploader, mais NON ce n'est pas un script PHP qui le fait !

Il suffit d'une ligne dans un fichier HTML *statique* pour demander au
*navigateur* de chercher un fichier en local (en local pour lui).
Donc non, le programme PHP n'a en aucune façon accès au disque dur du
visiteur.

Je t'encourage à lire et relire le paragraphe de la FAQ dont je t'ai
déjà donné le lien : <http://faqfclphp.free.fr/#rub2.3>.
<cit.>
HTTP : client serveur en mode asynchrone non connecté
</cit.>

Si après ça tu crois encore que PHP peut faire quelque chose pour ton
problème, c'est que tu n'as pas encore bien compris ce que cela voulait
dire : retourne le lire, puis viens nous demander des explications si ce
n'est toujours pas clair.

Pour faire ce que vous voulez, il faudrait plutot envisager :
1/ Une applet Java
2/ Du javascript signé (du javascript normal n'aura probablement pas le
droit de faire ça ?)
3/ Installer un 2e serveur web sur votre poste client local (B) et faire
dialoguer en HTTP A et B
4/ Oublier cette idée ;-)


Je suis preneur pour 1/ et pour 2/ mais je ne m'y connais pas assez en
Java (pour le JavaScript, je m'en sort un petit peu)


Si tu as des questions concernant Java : <news:fr.comp.lang.java>.
Pour JavaScript : <news:fr.comp.lang.javascript>.

Donc si quelqu'un peut poursuivre dans cette voie (ou dans une autre qui
fonctionne !), ça m'intéresse !


Va voir dans l'un des deux forums cités, selon le langage que tu auras
choisi. Ici, ce serait hors charte.

Cordialement,
--
Olivier Miakinen


Avatar
Legeais Vincent
Soit télécharger les photos sur ton site...


Beaucoup trop lourd (en poids, comme en manipulation... sauf si on peut
uploader plusieurs fichiers en une seule manipulation... Peut-on ?

Soit comme dit plus haut : Java ou ActiveX du coté client (applet
incorporé dans le HTML)


Je regarde en ce moment du côté de l'ActiveX proposée par O.L. :
"FileSystemObject"

De toutes façon la réponse ne viendra PAS de PHP...


Tant pis :(

--
Vincent

Avatar
Legeais Vincent
Je t'encourage à lire et relire le paragraphe de la FAQ dont je t'ai
déjà donné le lien : <http://faqfclphp.free.fr/#rub2.3>.
<cit.>
HTTP : client serveur en mode asynchrone non connecté
</cit.>


Lu et relu.
C'était déjà compris, et ce l'est à nouveau.
Mais je dois bien dire qu'une petit rafraîchissement de mes neurones ne
fait pas de mal.
Merci donc pour ce rappel.

Je suis en ce moment entrain de méditer sur le "FileSystemObject" (voir
ma réponse à O.L. (en cours de parution ?))

--
Vincent

Avatar
Pozzo
Legeais Vincent wrote:
Soit télécharger les photos sur ton site...


Beaucoup trop lourd (en poids, comme en manipulation... sauf si on peut
uploader plusieurs fichiers en une seule manipulation... Peut-on ?


En HTML+PHP... on peut mais il faut creer autant de tag <input
type="file"> que de fichier à transférer... puis l'utilisateur doit
entrer dans la zone de saisie les fichiers 1 par 1... puis ensuite il
click sur "OK" et ca envoie tous les fichiers en 1 fois. Un peu lourd qd
on veut uploader bcp d'images...

Soit comme dit plus haut : Java ou ActiveX du coté client (applet
incorporé dans le HTML)


Je regarde en ce moment du côté de l'ActiveX proposée par O.L. :
"FileSystemObject"


Attention : ca ne fonctionnera que sous IE et pas sous Firefox,Mozilla,
et autres...

--
Pozzo


Avatar
Pozzo
Legeais Vincent wrote:
Je suis en ce moment entrain de méditer sur le "FileSystemObject" (voir
ma réponse à O.L. (en cours de parution ?))


Attention tout de même : l'utilisation de cet objet dans du code
VBScript coté client (dans la page HTML) ne fonctionnera que sur IE et
en fonction des paramètres de sécurité du navigateur (basse). Dans la
grande majorité des cas ca ne fonctionnera pas car la config par défaut
n'est pas "Sécurité basse".

--
Pozzo

Avatar
Vincent Lascaux
Beaucoup trop lourd (en poids, comme en manipulation... sauf si on peut
uploader plusieurs fichiers en une seule manipulation... Peut-on ?


Donc tu veux que le serveur manipule les images (en crée des miniatures...
c'est quoi ta définition du trombinoscope ?) mais que les données restent
sur l'ordinateur du client. Comment c'est censé marché ca ?

--
Vincent

Avatar
CrazyCat
Soit télécharger les photos sur ton site...
Beaucoup trop lourd (en poids, comme en manipulation... sauf si on peut

uploader plusieurs fichiers en une seule manipulation... Peut-on ?


envoyer une archive zip que le php se chargera d'ouvrir et d'extraire...


--
Astuces pour webmasters: http://www.crazycat.info
Tchat francophone: http://www.crazy-irc.net


1 2 3