Affichage photos sur serveur web

Affichage photos sur serveur web - PHP - Programmation

Marsh Posté le 16-01-2020 à 19:28:18    

Bonjour à tous,
 
J'essaie de faire un site afin de pouvoir consulter mes photos stockées sur mon PC depuis n'importe où.
Pour cela je comptais utiliser mon PC avec wampserver d'installé, avec un site écrit en PHP.
Ne connaissant rien à PHP, j'ai trouvé ce bout de code:

Code :
  1. <?php
  2. $dir_nom = '../../../photos'; // dossier listé (pour lister le répertoire courant : $dir_nom = '.'  --> ('point')
  3. $dir = opendir($dir_nom) or die('Erreur de listage : le répertoire n\'existe pas'); // on ouvre le contenu du dossier courant
  4. $fichier= array(); // on déclare le tableau contenant le nom des fichiers
  5. $dossier= array(); // on déclare le tableau contenant le nom des dossiers
  6. while($element = readdir($dir)) {
  7.     if($element != '.' && $element != '..') {
  8.         if (!is_dir($dir_nom.'/'.$element)) {$fichier[] = $element;}
  9.         else {$dossier[] = $element;}
  10.     }
  11. }
  12. closedir($dir);
  13. if(!empty($dossier)) {
  14.     sort($dossier); // pour le tri croissant, rsort() pour le tri décroissant
  15.     echo "<p>Liste des dossiers accessibles dans '$dir_nom' : \n\n</p>";
  16.     echo "\t\t<ul class=rien>\n";
  17.         foreach($dossier as $lien){
  18.             echo "\t\t\t<li><a href=\"$dir_nom/$lien \">$lien</a></li>\n";
  19.         }
  20.     echo "\t\t</ul>";
  21. }
  22. if(!empty($fichier)){
  23.     sort($fichier);// pour le tri croissant, rsort() pour le tri décroissant
  24.     echo "<p>Liste des images accessibles sur l'hebergeur : \n\n</p>";
  25.     echo "\t\t<ul class=rien>\n";
  26.         foreach($fichier as $lien) {
  27.             echo "\t\t\t<li><img src=\"$dir_nom/$lien \"></li>\n";
  28.         }
  29.     echo "\t\t</ul>";
  30.  
  31. }
  32. ?>


 
Cela semble plutôt bien faire son travail, listant les photos que j'ai sur un dossier précis de mon PC et affichant les images.
C'est sur ce deuxième point que j'ai besoin de vos compétences car l'affichage des images est très aléatoire.
Je m'explique: dans l'exemple ci-dessus, les photos sont cherchées dans le dossier $dir_nom = '../../../photos';
Rien qu'à cette étape certaines photos s'affichent, d'autres non.
En faisant un autre test, je crée un dossier A dans le dossier photos, je renseigne donc $dir_nom = '../../../photos/A';
En copiant une image du dossier photos qui s'affichait dans le dossier A, cette photo ne s'affiche plus.
En affichant le code source, le chemin semble correct ainsi que le nom du fichier trouvé.
 
Je n'y comprends donc pas grand chose...
 
Si une âme charitable pouvait me venir en aide...
Merci d'avance et bonne journée!

Reply

Marsh Posté le 16-01-2020 à 19:28:18   

Reply

Marsh Posté le 17-01-2020 à 09:30:11    

Si tu as un NAS Synology, tu peux utiliser l'appli Photo qui te fera tout ça gratuitement et très facilement ;)
Si tu pars sur une solution pure PHP, ça va fonctionner mais niveau ergonomie, ça va être une tannée de visualiser des photos surtout s'il y en a beaucoup dans le répertoire. Une surcouche Javascript ne serait pas du luxe. Peut-être regarder du côté de Wordpress avec un plugin "galerie".


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 17-01-2020 à 14:55:29    

+1
Un wampserver, c'est pour bricoler un site en mode développement, c'est franchement pas fait pour être ouvert vers l’extérieur "en production" même si c'est réservé a tes contacts, en terme de sécurité, tu est forcé d'ouvrir le port 80 vers l’extérieur et il y'a en permanence des  machines qui scan ses ports.
Si tu n'as pas un NAS (avec lesquels en général la sécurité est pluôt bien géré), tu doit pouvoir trouver un petit hébergement gratuit (ton fournisseur d'accès t'en propose peut être un), ou alors Google Photo, Microsoft Onedrive...
 
Les performances seront sans commune mesure et les soucis en moins.


---------------
D3
Reply

Marsh Posté le 17-01-2020 à 21:53:16    

Bonjour à tous,
 
j'ai un peu avancé de mon côté: le côté aléatoire était dû au cache non vidé de mon navigateur, en fait aucune photos ne s'affichent pas.
 
Quand le dossier contenant mes photos se trouvent dans dossier www de Wamp, les photos s'affichent correctement.
Par contre, si je précise un dossier hors de www, les photos sont trouvées mais non affichées. En cliquant sur les photos j'obtiens:
"Not Found
The requested URL was not found on this server. "
 
Y a-t-il un paramétrage à effectuer du côté Apache (ou autre) afin de pouvoir accéder à d'autres dossiers que ceux du serveur?
 
J'ai entendu parler des alias et des liens symboliques, mais soit je ne suis pas sûr que ça réponde à mon besoin, soit je ne sais pas le mettre en place...

Reply

Marsh Posté le 17-01-2020 à 21:57:28    

Pour répondre à vos remarques, je crée ce site web car j'avais un compte google photos dont les 15Go gratuits sont pleins. J'ai beau supprimé des photos, l'espace libre ne s'actualise pas, je pars donc sur une solution maison.
Je me moque un peu du côté ergonomie, au pire je l'améliorerai avec le temps.

Reply

Marsh Posté le 18-01-2020 à 12:02:22    

damdam__33 a écrit :

Pour répondre à vos remarques, je crée ce site web car j'avais un compte google photos dont les 15Go gratuits sont pleins. J'ai beau supprimé des photos, l'espace libre ne s'actualise pas, je pars donc sur une solution maison.
Je me moque un peu du côté ergonomie, au pire je l'améliorerai avec le temps.


 
Tu ne lis pas ce qu'on t'a écrit. Avoir un serveur web WAMP hosté à la maison pour hoster des photos est une très mauvaise idée. L'explication t'en a été donné. Ouvrir le port 80 de sa machine pour cela est totalement irresponsable en terme de sécurité. Tu n'as aucun argument pour faire cela, et pour cause, il n'existe aucune raison sérieuse de faire cela.  
A la limite, tu pourrais encore nous dire : c'est pour apprendre le dev web, PHP, que sais-je... Et même là, il vaut 100 fois mieux avoir un hébergement payant quelque part pour hoster ensuite ses photos.
 
On t'a donné aussi une alternative qui est d'utiliser ton NAS qui lui, en sensé être bcp plus sécurisé et qui est prévu pour cela. Même comme cela, je trouve que laisser le port 80 ouvert sur son NAS depuis l'extérieur sans le limiter à la connexion à un VPN ou à une IP spécifique reste une mauvaise idée. C'est moins catastrophique que ton serveur web sous Windows, mais c'est pas terrible quand même.
 


---------------
Expert en expertises
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed