cs_chamallow
Messages postés363Date d'inscriptionmercredi 18 mai 2005StatutMembreDernière intervention29 janvier 2007
-
27 juin 2006 à 10:49
cs_chamallow
Messages postés363Date d'inscriptionmercredi 18 mai 2005StatutMembreDernière intervention29 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 !
cs_chamallow
Messages postés363Date d'inscriptionmercredi 18 mai 2005StatutMembreDernière intervention29 janvier 20071 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.
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_chamallow
Messages postés363Date d'inscriptionmercredi 18 mai 2005StatutMembreDernière intervention29 janvier 20071 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à!
cs_chamallow
Messages postés363Date d'inscriptionmercredi 18 mai 2005StatutMembreDernière intervention29 janvier 20071 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.
cs_chamallow
Messages postés363Date d'inscriptionmercredi 18 mai 2005StatutMembreDernière intervention29 janvier 20071 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.
cs_chamallow
Messages postés363Date d'inscriptionmercredi 18 mai 2005StatutMembreDernière intervention29 janvier 20071 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!
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 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é.
cs_chamallow
Messages postés363Date d'inscriptionmercredi 18 mai 2005StatutMembreDernière intervention29 janvier 20071 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 ??
cs_chamallow
Messages postés363Date d'inscriptionmercredi 18 mai 2005StatutMembreDernière intervention29 janvier 20071 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!