[RESOLU] Atteindre un répertoire sur un site exterieur

Petit nouveau ! | 3 Messages

29 août 2016, 11:42

Bonjour,
J'envoie les images d'une caméra sur mon site tous les un certain temps (date incluse dans le nom du fichier). Par une routine php j'affiche la dernière image et j'efface les autres (ça prend vite de la place).
J'ai une deuxième caméra qui ne veut pas envoyer les images sur ce même site (black listée?). J'envoie donc sur un autre site qui n'a rien à voir avec celui sur lequel je travaille (pagesperso-orange qui n'accepte pas la programmation php). Les images y sont.
J'essaie d'utiliser la routine qui fonctionne sur mon site en définissant $NomRep="http://nomdusite-pagesperso-orange.fr/images/" qui me retourne autre chose que prévu :
Après OpenDir, une boucle lit les fichiers jusqu'à ce qu'il n'y en ait plus... et les affiche. J'en ai 6 en tout pour essai.
Or, la boucle que je n'ai pas touchée (que le nom du site/répertoire) devient interminable et je n'ai plus d'affichage du nom du fichier image.
Je suppose que je ne suis peut-être pas dans le bon répertoire ?
Une idée ? Merci par avance.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

29 août 2016, 14:29

Bonjour, tu ne peux ouvrir un répertoire pour lister les fichiers avec opendir que sur le même serveur que ton serveur PHP, ça ne peut pas fonctionner à distance.

2 options :
- soit tu trouves pourquoi ta 2ème caméra n'arrive pas à uploader ses images sur ton serveur (et c'est à mon sens le + simple et logique)
- soit tu utilises les fonctions FTP en remplacement de opendir pour lister les fichier d'un répertoire distant en FTP.
Quand tout le reste a échoué, lisez le mode d'emploi...

Petit nouveau ! | 3 Messages

29 août 2016, 19:06

Merci pour cette réponse.
Quelles fonctions FTP utiliser ? (avec comme problème qui viendra une fois listé les fichiers, ce sera de pouvoir les effacer...).
J'ai essayé file_get_contents sans succès. Peut être que je ne sais pas faire.
Pour la caméra, elle n'accepte pas de se connecter sur le site depuis quelques temps. Elle donne une erreur pas compréhensible. Pas d'aide du côté des fabricants ou revendeurs.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

29 août 2016, 21:12

Merci pour cette réponse.
Quelles fonctions FTP utiliser ? (avec comme problème qui viendra une fois listé les fichiers, ce sera de pouvoir les effacer...)
Un petit effort et une recherche Google plus tard : http://php.net/manual/fr/ref.ftp.php
Quand tout le reste a échoué, lisez le mode d'emploi...

Petit nouveau ! | 3 Messages

31 août 2016, 19:17

Bonjour,
Pas très simple..., tout ne fonctionne pas comme cela semble être le cas de ce qui est dit.
Ce que j'ai utilisé :
ftp_connect($Mon_site_ftp) [pas en http] et @ftp_login($connexion, $Utilisateur, $MdP) pour me connecter.
@ftp_chdir($connexion, "Images_Cam"); pour être dans le répertoire où sont envoyées les images
$Contenu = ftp_nlist($connexion, ".") et $Dim_Tableau=count($Contenu) pour connaître le nombre de fichiers
Date('H').Date('i');// heure, min, pas sec, et pas centièmes pour différencier les images actuelles et les anciennes
$pos = strrpos($Nom_Fichier,$Nom_Fichier_a_copier) pour déterminer si la "bonne" date est dans le nom de l'image
ftp_get($connexion, "cam04_1.jpg", $Nom_Fichier, FTP_BINARY) pour recopier (dans le bon répertoire et avec le bon nom) l'image qui m'intéresse
ftp_delete($connexion,$Nom_Fichier) pour supprimer les images qui ne sont plus valides
@ftp_close($connexion) pour me déconnecter.
Le tout fonctionne.
Petite remarque : j'ai essayé d'utiliser la fonction fgets(STDIN) pour entrer mon mot de passe au clavier, ça ne va pas (malgré les différents exemples trouvés.
Je marque le sujet résolu.
Merci de votre aide.