Lire répertoire dans partitions sous unix
Bonjour,
Je travaille sous Mac OS 10.3.3 en langage php.
Mon disque dur est partitionné en trois parties.
Mon script php réside sur ma première partition, identifiée : Mac1/Sites
Je sais que si je veux lire les fichiers dans la racine de Mac1 je déclarerai la racine comme ceci en php :
$racine="../../";
Mais si je veux accéder à la racine de ma partition 2, appelée Mac2, et lire les fichiers sur cette partition, comment dois-je procéder ? J'ai essayé plein de choses et rien ne fonctionne.
Merci de m'aider
Je travaille sous Mac OS 10.3.3 en langage php.
Mon disque dur est partitionné en trois parties.
Mon script php réside sur ma première partition, identifiée : Mac1/Sites
Je sais que si je veux lire les fichiers dans la racine de Mac1 je déclarerai la racine comme ceci en php :
$racine="../../";
Mais si je veux accéder à la racine de ma partition 2, appelée Mac2, et lire les fichiers sur cette partition, comment dois-je procéder ? J'ai essayé plein de choses et rien ne fonctionne.
Merci de m'aider
A voir également:
- Lire répertoire dans partitions sous unix
- Lire le coran en français pdf - Télécharger - Histoire & Religion
- Lire epub - Guide
- Lire fichier bin - Guide
- Lire iso - Guide
- Comment lire un message supprimé sur whatsapp - Guide
7 réponses
Il faut créer un lien depuis Mac1/Sites vers le répertoire de Mac2 :
Pour plus d'infos
Bonne chance
ln -s plop plopplop
Pour plus d'infos
man ln
Bonne chance
Bonjour,
Votre réponse concerne les commandes envoyées par le Terminal et non les instructions à entrer dans un script php qui opère comme langage serveur.
Merci quand même
Votre réponse concerne les commandes envoyées par le Terminal et non les instructions à entrer dans un script php qui opère comme langage serveur.
Merci quand même
Mais évidemment que c'est dans un terminal. Tu crées un lien dans /var/www/html/htdocs appelé plop qui pointe par exemple vers /mnt/mac3/plop.
Ou tu peux aussi faire des mount à base de bind, pour monter des répertoires déjà montés dans ton /var/www/html/htdocs/, par exemple en te basant sur ce post :
http://www.commentcamarche.net/forum/affich-1681389-Monter-une-partition-dans-home
L'idée c'est qu'avec ces deux méthodes, tout se passe comme si les fichier était au bon endroit de l'arborescence, sauf que physiquement ils ne sont pas sur la même partition.
Bonne chance
Ou tu peux aussi faire des mount à base de bind, pour monter des répertoires déjà montés dans ton /var/www/html/htdocs/, par exemple en te basant sur ce post :
http://www.commentcamarche.net/forum/affich-1681389-Monter-une-partition-dans-home
L'idée c'est qu'avec ces deux méthodes, tout se passe comme si les fichier était au bon endroit de l'arborescence, sauf que physiquement ils ne sont pas sur la même partition.
Bonne chance
Rebonjour mamiemando,
Merci de vous attarder à mon problème.
Je suis cependant désolé ; votre suggestion ne convient pas à ce que je veux ou bien c'est moi qui ne comprends pas ce que vous voulez me suggérer.
L'enfilade à laquelle vous me référez, concerne la question du montage des partitions en utilisant la console ou le terminal dans un environnement unix. Cela suppose que moi, l'utiilisateur, je puisse utiliser le terminal à bon escient au moment qui me convient en l'absence d'un éventuel «client» qui viendrait sur mon serveur au même moment.
Mon problème est ailleurs.
J'opère un petit serveur personnel et je veux partager des photos avec des amis. J'ai donc entrepris de fabriquer un site internet en utilisant les langages du web, tels le html, le javascript et le php.
Dans une routine php, je veux que le «client» puisse choisir le dossier duquel il va pouvoir télécharger les photos de son choix. Pour ce faire, il doit accéder à mon site, activer une routine php qui va lui permettre de parcourir les dossiers ou répertoires où se trouvent des photos.
En langage php, donner accès à des répertoires situés sur la même partition que la routine php ne constitue pas un problème pour moi.
Mon problème, c'est que je ne sais pas comment déclarer une variable en language php qui conduise l'utilisateur de mon site où il veut aller, éventuellement sur une autre partition que celle où se trouve ma routine php.
Est-ce que ce doit être :
$racine ="mnt/Mac3/Fonds";
ou
$racine = "/Volumes/Mac3/Fonds"; ?
C'est ce que je veux savoir. (les choix ci-haut ne fonctionnent évidemment pas)
Vous avez d'autres suggestions ?
Merci encore de m'aider
Merci de vous attarder à mon problème.
Je suis cependant désolé ; votre suggestion ne convient pas à ce que je veux ou bien c'est moi qui ne comprends pas ce que vous voulez me suggérer.
L'enfilade à laquelle vous me référez, concerne la question du montage des partitions en utilisant la console ou le terminal dans un environnement unix. Cela suppose que moi, l'utiilisateur, je puisse utiliser le terminal à bon escient au moment qui me convient en l'absence d'un éventuel «client» qui viendrait sur mon serveur au même moment.
Mon problème est ailleurs.
J'opère un petit serveur personnel et je veux partager des photos avec des amis. J'ai donc entrepris de fabriquer un site internet en utilisant les langages du web, tels le html, le javascript et le php.
Dans une routine php, je veux que le «client» puisse choisir le dossier duquel il va pouvoir télécharger les photos de son choix. Pour ce faire, il doit accéder à mon site, activer une routine php qui va lui permettre de parcourir les dossiers ou répertoires où se trouvent des photos.
En langage php, donner accès à des répertoires situés sur la même partition que la routine php ne constitue pas un problème pour moi.
Mon problème, c'est que je ne sais pas comment déclarer une variable en language php qui conduise l'utilisateur de mon site où il veut aller, éventuellement sur une autre partition que celle où se trouve ma routine php.
Est-ce que ce doit être :
$racine ="mnt/Mac3/Fonds";
ou
$racine = "/Volumes/Mac3/Fonds"; ?
C'est ce que je veux savoir. (les choix ci-haut ne fonctionnent évidemment pas)
Vous avez d'autres suggestions ?
Merci encore de m'aider
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bon ok j'ai pas du être claire. Il est impossible de remonter plus haut dans l'arborescence que le DocumentRoot spécifié dans ton serveur apache, par défaut /var/www/html/htdocs. En particulier si tu as des données sur un autre disque que celles contenues dans ce répertoire (par exemple /mnt/Mac3/Fonds).
L'idée c'est donc de creer sur le serveur qui héberge les données une ruse permettant de retrouver les fichiers de /mnt/Mac3/Fonds dans /var/www/html/htdocs.
Première méthode :
les copier, mais c'est dommage, c'est autant de place de perdue (que tu n'as pas forcément qui plus est), ça force à mettre à jour les deux répertoire etc.
Deuxième méthode :
créer un lien symbolique. Quand tu tapes
Tout ce passe comme si tu avait désormais un répertoire Plop qui contient exactement cd qu'il y a dans /mnt/Mac3/Fonds
Troisième méthode :
monter une partition "bind" liée à /mnt/Mac3/Fonds à l'intérieur de /var/www/html/htdocs. C'est la méthode expliquée dans le lien. En gros tu montes le répertoire Fonds non seulement dans /mnt/Mac3, mais aussi dans /var/www/html/htdocs.
Les méthodes deux et trois permettent quand tu manipule un répertoire de travailler sur l'autre de manière transparente. Attention à la gestion des droits donc.
En espérant avoir été plus claire
Bonne chance
L'idée c'est donc de creer sur le serveur qui héberge les données une ruse permettant de retrouver les fichiers de /mnt/Mac3/Fonds dans /var/www/html/htdocs.
Première méthode :
les copier, mais c'est dommage, c'est autant de place de perdue (que tu n'as pas forcément qui plus est), ça force à mettre à jour les deux répertoire etc.
Deuxième méthode :
créer un lien symbolique. Quand tu tapes
cd /var/www/html/htdocs ln -s /mnt/Mac3/Fonds Plop
Tout ce passe comme si tu avait désormais un répertoire Plop qui contient exactement cd qu'il y a dans /mnt/Mac3/Fonds
Troisième méthode :
monter une partition "bind" liée à /mnt/Mac3/Fonds à l'intérieur de /var/www/html/htdocs. C'est la méthode expliquée dans le lien. En gros tu montes le répertoire Fonds non seulement dans /mnt/Mac3, mais aussi dans /var/www/html/htdocs.
Les méthodes deux et trois permettent quand tu manipule un répertoire de travailler sur l'autre de manière transparente. Attention à la gestion des droits donc.
En espérant avoir été plus claire
Bonne chance
Bonjour,
Mon problème est en partie solutionné, mais en partie seulement !
La routine présentée ici-bas fonctionne parfaitement pour lire et afficher les images contenues le répertoire «Fonds» qui est situé dans le même dossier que la routine php.
Sous Unix, on peut lire un répertoire dans une autre partition avec la racine "/Volumes" + nom de la partition + répertoire à lire.
Ainsi, lorsque $dir pointe sur "/Volumes/Mac3/PhotosFondEcran" je peux lire et afficher le nom de toutes les images du répertoire mais je ne peux les afficher pour l'instant. Je peux voir sur l'écran la cellule du tableau <table> mais je ne peux voir que le carré habituel avec le "?" à l'intérieur. Je me dis que si je peux lire le nom des images je peux accéder à un dossier situé sur une autre partition(contrairement à ce que dit mamiemando) et je devrais pouvoir afficher ces images.
Quelqu'un a une suggestion ?
Merci de m'aider
Mon problème est en partie solutionné, mais en partie seulement !
La routine présentée ici-bas fonctionne parfaitement pour lire et afficher les images contenues le répertoire «Fonds» qui est situé dans le même dossier que la routine php.
Sous Unix, on peut lire un répertoire dans une autre partition avec la racine "/Volumes" + nom de la partition + répertoire à lire.
Ainsi, lorsque $dir pointe sur "/Volumes/Mac3/PhotosFondEcran" je peux lire et afficher le nom de toutes les images du répertoire mais je ne peux les afficher pour l'instant. Je peux voir sur l'écran la cellule du tableau <table> mais je ne peux voir que le carré habituel avec le "?" à l'intérieur. Je me dis que si je peux lire le nom des images je peux accéder à un dossier situé sur une autre partition(contrairement à ce que dit mamiemando) et je devrais pouvoir afficher ces images.
Quelqu'un a une suggestion ?
Merci de m'aider
//$dir="/Volumes/Mac3/PhotosFondEcran";
$dir ="Fonds";//Fonds est situé dans le même répertoire que cette routine
$typeFich="jpg|tiff|jpeg|gif|png";//les fichiers acceptés
$dossier = opendir($dir);
$a=0;
echo '<table ><tr>';
while ($Fichier[$a] = readdir($dossier))
{
if ($Fichier[$a] != "." && $Fichier[$a] != ".." && $Fichier[$a] != ".DS_Store"
and eregi("\.($typeFich)$",$Fichier[$a]))// les répertoires sous UNIX ont un fichier .DS_Store
{
$nomFichier = $Fichier[$a];
$a++;
echo $nomFichier . "\n";
echo ("<td ><img width =90 border=1 src=\"" . $dir . "/" . $nomFichier. "\"></a></td>");
echo '</tr></table><br>';
}
}
Bonjour,
Mille excuses mamiemando! Que je suis bête !
Je comprends enfin (ou presque ;-)) ce que vous me suggérez.
Je crée d'abord un lien symbolique de mon répertoire /Volumes/Mac3/PhotosFondEcran (admettons) vers mon répertoire var/ avec la commande ln -sf du terminal. Cela créera une sorte d'alias à laquelle je pourrai référer en php.
Au terminal ça donnerait ceci, en admettant que je crée un répertoire nommé "web> :
ln -sf /Volumes/Mac3/PhotosFondEcran /var/web
Dans var/ j'ai les fichiers suivants:
at empty named samba vm
audit launchd netboot slp.regfile xgrid
backups log root slp.tempfile yp
cron mail run spool
db msgs rwho tmp
(Je n'ai pas les répertoires que vous montrez dans un de vos derniers messages.)
Ensuite, en php, je déclare mon répertoire comme ceci :
$source = "/var/web";
(je n'ose pas l'essayer avant votre confirmation pcq je ne connais pas suffisamment les commandes unix et ce qu'elle vont entraîner)
Mais alors, je ne comprends pas pourquoi je peux lire et afficher le nom des fichiers situés sur mes autres partitions alors que je ne peux afficher les images. Ce ne serait pas un problème de permission de lecture...
Pour vérifier, branchez-vous au lien suivant :
http://monalbum.no-ip.org/PartitionMac3.php
Vous verrez les noms de toutes les images situées dans
/Volumes/Mac3/PhotosFondEcran
alors que ma routine php est dans la partition Mac1.
Vous avez une explication?
Merci de votre patiente aide
Mille excuses mamiemando! Que je suis bête !
Je comprends enfin (ou presque ;-)) ce que vous me suggérez.
Je crée d'abord un lien symbolique de mon répertoire /Volumes/Mac3/PhotosFondEcran (admettons) vers mon répertoire var/ avec la commande ln -sf du terminal. Cela créera une sorte d'alias à laquelle je pourrai référer en php.
Au terminal ça donnerait ceci, en admettant que je crée un répertoire nommé "web> :
ln -sf /Volumes/Mac3/PhotosFondEcran /var/web
Dans var/ j'ai les fichiers suivants:
at empty named samba vm
audit launchd netboot slp.regfile xgrid
backups log root slp.tempfile yp
cron mail run spool
db msgs rwho tmp
(Je n'ai pas les répertoires que vous montrez dans un de vos derniers messages.)
Ensuite, en php, je déclare mon répertoire comme ceci :
$source = "/var/web";
(je n'ose pas l'essayer avant votre confirmation pcq je ne connais pas suffisamment les commandes unix et ce qu'elle vont entraîner)
Mais alors, je ne comprends pas pourquoi je peux lire et afficher le nom des fichiers situés sur mes autres partitions alors que je ne peux afficher les images. Ce ne serait pas un problème de permission de lecture...
Pour vérifier, branchez-vous au lien suivant :
http://monalbum.no-ip.org/PartitionMac3.php
Vous verrez les noms de toutes les images situées dans
/Volumes/Mac3/PhotosFondEcran
alors que ma routine php est dans la partition Mac1.
Vous avez une explication?
Merci de votre patiente aide
Bonjour,
Mille excuses mamiemando! Que je suis bête !
Je comprends enfin (ou presque ;-)) ce que vous me suggérez.
Je crée d'abord un lien symbolique de mon répertoire /Volumes/Mac3/PhotosFondEcran (admettons) vers mon répertoire var/ avec la commande ln -sf du terminal. Cela créera une sorte d'alias à laquelle je pourrai référer en php.
Au terminal ça donnerait ceci, en admettant que je crée un répertoire nommé "web> :
ln -sf /Volumes/Mac3/PhotosFondEcran /var/web
Dans var/ j'ai les fichiers suivants:
at empty named samba vm
audit launchd netboot slp.regfile xgrid
backups log root slp.tempfile yp
cron mail run spool
db msgs rwho tmp
(Je n'ai pas les répertoires que vous montrez dans un de vos derniers messages.)
Ensuite, en php, je déclare mon répertoire comme ceci :
$source = "/var/web";
(je n'ose pas l'essayer avant votre confirmation pcq je ne connais pas suffisamment les commandes unix et ce qu'elle vont entraîner)
Mais alors, je ne comprends pas pourquoi je peux lire et afficher le nom des fichiers situés sur mes autres partitions alors que je ne peux afficher les images. Ce ne serait pas un problème de permission de lecture...
Pour vérifier, branchez-vous au lien suivant :
http://monalbum.no-ip.org/PartitionMac3.php
Vous verrez les noms de toutes les images situées dans
/Volumes/Mac3/PhotosFondEcran
alors que ma routine php est dans la partition Mac1.
Vous avez une explication?
Merci de votre patiente aide
Mille excuses mamiemando! Que je suis bête !
Je comprends enfin (ou presque ;-)) ce que vous me suggérez.
Je crée d'abord un lien symbolique de mon répertoire /Volumes/Mac3/PhotosFondEcran (admettons) vers mon répertoire var/ avec la commande ln -sf du terminal. Cela créera une sorte d'alias à laquelle je pourrai référer en php.
Au terminal ça donnerait ceci, en admettant que je crée un répertoire nommé "web> :
ln -sf /Volumes/Mac3/PhotosFondEcran /var/web
Dans var/ j'ai les fichiers suivants:
at empty named samba vm
audit launchd netboot slp.regfile xgrid
backups log root slp.tempfile yp
cron mail run spool
db msgs rwho tmp
(Je n'ai pas les répertoires que vous montrez dans un de vos derniers messages.)
Ensuite, en php, je déclare mon répertoire comme ceci :
$source = "/var/web";
(je n'ose pas l'essayer avant votre confirmation pcq je ne connais pas suffisamment les commandes unix et ce qu'elle vont entraîner)
Mais alors, je ne comprends pas pourquoi je peux lire et afficher le nom des fichiers situés sur mes autres partitions alors que je ne peux afficher les images. Ce ne serait pas un problème de permission de lecture...
Pour vérifier, branchez-vous au lien suivant :
http://monalbum.no-ip.org/PartitionMac3.php
Vous verrez les noms de toutes les images situées dans
/Volumes/Mac3/PhotosFondEcran
alors que ma routine php est dans la partition Mac1.
Vous avez une explication?
Merci de votre patiente aide
Bonjour,
J'ai créé un lien symbolique dans un répertoire situé à la racine du répertoire sur lequel est situé mon script php et tout baigne. Je peux désormais afficher les images de ma partition Mac3 qui se retrouvent à l'état virtuel (comme un alias) dans ce nouveau répertoire. J'ai fait comme ceci-ci :
ln -sf /Volumes/Mac3/PhotosFondEcran /Volumes/Mac1/Library/WebServer/Documents/Photos_mac3
Cela a eu pour effet de créer un sous-répertoire «PhotosFondEcran» dans «Photos_mac3». Désormais mon script php me permet de les afficher.
Mais, je ne comprends toujours pas pourquoi je peux lire et afficher le nom des images, leur poids respectif ainsi que leurs dimensions dans tous mes répertoires alors que je ne peux pas les afficher dans mon navigateur. Ça demeure un mystère.
Merci
J'ai créé un lien symbolique dans un répertoire situé à la racine du répertoire sur lequel est situé mon script php et tout baigne. Je peux désormais afficher les images de ma partition Mac3 qui se retrouvent à l'état virtuel (comme un alias) dans ce nouveau répertoire. J'ai fait comme ceci-ci :
ln -sf /Volumes/Mac3/PhotosFondEcran /Volumes/Mac1/Library/WebServer/Documents/Photos_mac3
Cela a eu pour effet de créer un sous-répertoire «PhotosFondEcran» dans «Photos_mac3». Désormais mon script php me permet de les afficher.
Mais, je ne comprends toujours pas pourquoi je peux lire et afficher le nom des images, leur poids respectif ainsi que leurs dimensions dans tous mes répertoires alors que je ne peux pas les afficher dans mon navigateur. Ça demeure un mystère.
Merci
Yop désolé pour le retard, vacances vacances ;-) Bon en effet tu as compris ce que je t'ai fait faire ^^
Je pense que c'est ton script php qui est faux car tes dimensions sont fausses :
http://monalbum.no-ip.org/Volumes/Mac3/PhotosFondEcran/1024.jpg
renvoit une erreur 404. Ceci signifie que 1024.jpg n'est pas dans /var/www/html/htdocs/Volumes/Mac3/PhotosFondEcran/
ou que les droits pour l'utilisateur apache ne lui permette pas de les lire.
Bonne chance
Je pense que c'est ton script php qui est faux car tes dimensions sont fausses :
http://monalbum.no-ip.org/Volumes/Mac3/PhotosFondEcran/1024.jpg
renvoit une erreur 404. Ceci signifie que 1024.jpg n'est pas dans /var/www/html/htdocs/Volumes/Mac3/PhotosFondEcran/
ou que les droits pour l'utilisateur apache ne lui permette pas de les lire.
Bonne chance