Ftp et chemins d'accès

Résolu
cs_chamallow Messages postés 363 Date d'inscription mercredi 18 mai 2005 Statut Membre Dernière intervention 29 janvier 2007 - 27 juin 2006 à 10:49
cs_chamallow Messages postés 363 Date d'inscription mercredi 18 mai 2005 Statut Membre Dernière intervention 29 janvier 2007 - 9 oct. 2006 à 13:31
Bonjour,

J'ai un petit problème avec mon module d'upload download.
En fait en local tout se passe bien. Mais dès qu'il s'agit de sortir de cette perspective, c'est la catastrophe.

En fait mon module d'upload de fichier crée un dossier en fonction du dossier devis auquel appartient le fichier (par exemple si le fichier à uploader est associé au devis n°060001, alors on crée un dossier 060001 où on uploadera le fichier.) . Bien sûr, si le dossier existe déjà on ne le recrée pas. Et bien là est le problème car je n'arrive pas à trouver le bon test !!

Alors pour plus de détails (parce qu'il en faut ), mon module php est sur un serveur (on dira S1) qui contient le serveur ftp, mais les fichiers à uploader doivent se trouver sur un autre serveur (S2). DOnc en fait mon serveur ftp de S1 est configuré pour que quand on s'y connecter, on atterrit directement dans le dossier partagé de S2 (celui où on uploadera).

Donc j'arrive à me connecter, j'arrive à créer des dossiers même. Seulement, si jamais le dossier existe je plante, et là je cherche depuis un moment le bon chemin et rien à faire grrr grrrr Pourtant tous les chemins essayer marche (parce que j'arrive à aller dessus si je les mets en lien), mais ils font pas marcher mon test !

Alors voilà un bout de code avec un exemple de chemin testé ($repAssocie vaut 060001 par exemple) :
if(!file_exists('\\S1\Archives\Devis\'.$repAssocie.'/') && !is_dir('\\S1\Archives\Devis\'.$repAssocie.'/'))

DOnc voilà, si quelqu'un pouvait m'expliquer comment faire marche ce test svp, merci d'avance !

23 réponses

cs_chamallow Messages postés 363 Date d'inscription mercredi 18 mai 2005 Statut Membre Dernière intervention 29 janvier 2007 1
28 juin 2006 à 15:24
Bon, c'et résolu. J'ai opté pour ftp_nlist qui me liste le dossier
partagé, après j'ai plus qu'à tester si le dossier à créer existe déjà!
3
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
27 juin 2006 à 10:59
Hello,

pq ces tests ? Avec un if (ftp_mkdir ()) ça ira très bien. S'il exists, il ne sera pas créé, et basta.
0
cs_chamallow Messages postés 363 Date d'inscription mercredi 18 mai 2005 Statut Membre Dernière intervention 29 janvier 2007 1
27 juin 2006 à 11:14
Olaaaaa j'aurais fait tout ça pour rien ?? lol

Je vais tester, si ça marche, jme flingue
0
cs_chamallow Messages postés 363 Date d'inscription mercredi 18 mai 2005 Statut Membre Dernière intervention 29 janvier 2007 1
27 juin 2006 à 11:17
Bouhhhhhhhhhh ça marche pas, il plante parce que ça existe déjà!!
Pi j'ai fais tous ces tests pour faire : nomDossier = ftp_mkdir($retourConn, $repFinal); comme ça je récupérais le nom du dossier comme j'en ai besoin par la suite.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_chamallow Messages postés 363 Date d'inscription mercredi 18 mai 2005 Statut Membre Dernière intervention 29 janvier 2007 1
27 juin 2006 à 11:24
Bon ma dernière remarque est conne désolée. En fait pas besoin de récupérer le nom ...
Mais en tout cas ce que tu m'as dis de faire ne marche pas, il plante en me disant que le dossier existe déjà!
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
27 juin 2006 à 11:37
 if (@ftp_mkdir (...)) {
   //réussi
} else {
   échoué : log erreurs, affichage de messages etc...
}
0
cs_chamallow Messages postés 363 Date d'inscription mercredi 18 mai 2005 Statut Membre Dernière intervention 29 janvier 2007 1
27 juin 2006 à 11:44
if(@ftp_mkdir($retourConn, $repFinal))
            {
                //Si le dossier existe déjà, on le signale en passant la variable existDossier à true :
                $existDossier = true;
            }
            else
            {
               
                //Si la création du dossier a échoué, on passe la variable existDossier à false pour signaler que le dossier n'existe pas :
                echo ("Une erreur est survenue lors de la création du répertoire devant contenir le fichier a uploader. Le transfert a donc été annulé.");
                $existDossier = false;
            }

Bon si je fais ça, il passe dans la deuxième boucle si le dossier est créé, donc c'est normal vu qu'il existe déjà dans mes tests.

Mais en fait ça m'arrange pas, parce que au final j'ai besoin de savoir si le dossier existe (ben il peut passer dans la deuxième boucle parcce qu'il a pas réussi à créer le fichier par exemple, donc ça me suffit pas ce test). Donc, il me faut bien le test dont j'ai parlé dans mon premier post.
0
cs_chamallow Messages postés 363 Date d'inscription mercredi 18 mai 2005 Statut Membre Dernière intervention 29 janvier 2007 1
27 juin 2006 à 11:48
En fait, il faut que je sache au final si le dossier existe pour savoir si je peux continuer mon upload ou si j'arrête tout, tout de suite. C'est pour ça qu'au début je regardais si le dossier existait déjà, si cétait pas le cas alors je le créais, et si ça plantais je m'arretait, sinon dans les deux autres cas, je continuais.
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
27 juin 2006 à 12:21
Tu peux essayer les ftp wrapper, mais ça ne marche qu'avec php5.
0
cs_chamallow Messages postés 363 Date d'inscription mercredi 18 mai 2005 Statut Membre Dernière intervention 29 janvier 2007 1
27 juin 2006 à 13:29
Ben malheureusement j'suis pas en php5 :(
Ah ben j'suis bien là lol
0
cs_chamallow Messages postés 363 Date d'inscription mercredi 18 mai 2005 Statut Membre Dernière intervention 29 janvier 2007 1
27 juin 2006 à 13:39
Euh je me demande, les fonctions que j'utilisent marchent pour tout ce qui est distant, ou  c'est que pour ce qui est local ?? Peut-être qu'en répondant en ça, j'avancerai!
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
27 juin 2006 à 13:50
C'est bien pour ça que je te parlais des wrapper.
Ca dépend de ta config.
Et ça marche mieux, en distant, avec php5.
Mais file_exists, is_dir etc ont besoin des bons wrapper pour fonctionner à distance. Donc il faut que ton serveur soit correctement configuré.
0
cs_chamallow Messages postés 363 Date d'inscription mercredi 18 mai 2005 Statut Membre Dernière intervention 29 janvier 2007 1
27 juin 2006 à 13:58
Bon je sais pas ce que c'est les wrapper mais je vais chercher

Sinon j'ai vu que is-dir marche pas à distance, bon je vais chercher, je vais chercher lol
Parce que j'ai besoin de ça snif
0
cs_chamallow Messages postés 363 Date d'inscription mercredi 18 mai 2005 Statut Membre Dernière intervention 29 janvier 2007 1
27 juin 2006 à 15:52
Bon faut que j'arrêtes moi !

Je suis en PHP5!! Par contre c'est quoi les wrapper ??
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
27 juin 2006 à 16:15
0
cs_chamallow Messages postés 363 Date d'inscription mercredi 18 mai 2005 Statut Membre Dernière intervention 29 janvier 2007 1
27 juin 2006 à 16:17
Mdr je venais de tomber dessus y'a pas longtemps :) Merci

Je vais me pencher là-dessus
0
cs_chamallow Messages postés 363 Date d'inscription mercredi 18 mai 2005 Statut Membre Dernière intervention 29 janvier 2007 1
28 juin 2006 à 08:10
Ok donc j'ai essayé de regardé un peu ce que ça racontait et j'ai essayé un truc mais ça fonctionne pas.

Donc j'ai voulu me servir  d'un chemin du style <tt class="filename">\\smbserver\share\path\to\winfile.ext comme le spécifie leur page.
Mais en fait, moi ce que j'ai c'est un alias, si je fais \\S1\Archives\Devis, je me retrouve sur le serveur S1 dans le dossier \Archives\Devis, sans avoir besoin de taper tout le chemin d'accès. Donc je voulais savoir, est-ce possible avec les alias ?? Parce que si je fais ça, ça ne marche pas.
Ou alors, j'ai encore rien compris, et je fais tout de travers !!

Sinon, est-ce-qu'il faut configurer PHP pour faire ce genre de choses ??

Merci
</tt>
0
cs_chamallow Messages postés 363 Date d'inscription mercredi 18 mai 2005 Statut Membre Dernière intervention 29 janvier 2007 1
28 juin 2006 à 10:19
 Personne pour m'aider ??? Je deviens folle, une coup je lis un truc qui dit qu'on peut le faire, un coup c'est carrément impossible lol! Pourtant la doc a pas dit que c'est impossible
Bon sinon, PHP est bien configuré parce que c'est à ON pour autoriser les url (enfin ce qui est nécessaire pour les fichiers distant d'après la doc).

Donc maintenant faut que je réussisse à faire fonctionner la fonction, et c'est pas gagné, je trouve pas le bon chemin!
0
cs_chamallow Messages postés 363 Date d'inscription mercredi 18 mai 2005 Statut Membre Dernière intervention 29 janvier 2007 1
28 juin 2006 à 14:19
Je trouve toujours pas C'est grave ça lol
Ptet c'est un  problème de config sur serveur ...
0
kerneltony95 Messages postés 152 Date d'inscription dimanche 22 janvier 2006 Statut Membre Dernière intervention 26 mars 2007
8 oct. 2006 à 17:02
utilise la fonction CURL de php

http://fr.php.net/curl

Have Fun !
0
Rejoignez-nous