Créer un dossier dans son espace FTP en php

Vous avez un soucis de développement et ce n'est pas du ressort de notre support ? N'hésitez pas à soumettre vos petits soucis de développement et à vous entre aider par la même occasion.
Inconnu
Cet utilisateur a supprimé son compte et n’existe plus.
Messages : 6340
Inscription : 29 décembre 2010 à 18:15

Bonjour,
J'ai un problème, impossible de créer un dossier dans mon ftp en php
Voici le code utilisé:

Code : Tout sélectionner

\t
$dir = 'www/'.$chp5;

if (!file_exists("www/$chp5"))
\t{ // Si le répertoire "rep" n'existe pas on le crée
 
$ftp = ftp_connect($host2); // On prépare la connexion
ftp_login($ftp,"$user","$pass"); // On se connecte au serveur
// Tentative de création du dossier $dir
if (ftp_mkdir($ftp, $dir)) {
echo "Le dossier $dir a été créé avec succès
";
} else {
echo "Il y a eu un problème lors de la création du dossier $dir 
";
}
ftp_close($ftp); // On se déconnecte du serveur
 
} 
Résultat: j'ai donc le message:
Il y a eu un problème lors de la création du dossier $dir
Je ne vois vraiment pas pourquoi cela ne fonctionne pas.
Quelqu'un à une idée?

D'avance merci
Avatar de l’utilisateur
Elodie
Fondatrice / Responsable
Fondatrice / Responsable
Messages : 7937
Inscription : 2 avril 2010 à 20:14

Bonjour,

Vous vérifiez en PHP (donc en local) si le répertoire existe avant de le créer, c'est bien. Mais par contre, vous effectuez cette création via FTP (prévu pour des opérations distantes), c'est à dire que vous vous connectez à votre espace, vous crée le répertoire et enfin vous vous déconnectez : c'est inutile, lourd et trop complexe, utilisez la commande mkdir() de PHP à la place :)

Surtout qu'il est impossible de se connecter en FTP sur le serveur FTP de FranceServ Hébergement depuis le web mutualisé, ceci pour éviter le brute force.
Vous avez une question ? Posez-la de préférence sur le forum et si ça demande un contact plus instantané, n'hésitez pas à vous rendre sur le t'chat IRC. Si votre question est personnelle, contactez-nous directement.
Inconnu
Cet utilisateur a supprimé son compte et n’existe plus.
Messages : 6340
Inscription : 29 décembre 2010 à 18:15

Merci beaucoup en effet cela fonctionne à présent.
Et pour copier le contenu d'un dossier dans un autre dossier cela se passe comment?
Quel fonction utiliser?
Désolé mais de ce fait je suis perdu entre les commandes en local ou à distance...
Avatar de l’utilisateur
Elodie
Fondatrice / Responsable
Fondatrice / Responsable
Messages : 7937
Inscription : 2 avril 2010 à 20:14

Vous trouverez toutes les commandes PHP utiles à cette adresse :
http://php.net/manual/fr/ref.filesystem.php

dont la commande rename() qui permet de renommer mais également de déplacer quand le chemin de destination est différent :)
Vous avez une question ? Posez-la de préférence sur le forum et si ça demande un contact plus instantané, n'hésitez pas à vous rendre sur le t'chat IRC. Si votre question est personnelle, contactez-nous directement.
Inconnu
Cet utilisateur a supprimé son compte et n’existe plus.
Messages : 6340
Inscription : 29 décembre 2010 à 18:15

Oui mais je veux copier pas deplacer.
Copy serait correct pour copier le contenu d'un dossier du ftp dans un autre dossier du ftp?
Avatar de l’utilisateur
Elodie
Fondatrice / Responsable
Fondatrice / Responsable
Messages : 7937
Inscription : 2 avril 2010 à 20:14

iccc a écrit :Copy serait correct pour copier le contenu d'un dossier du ftp dans un autre dossier du ftp?
Oui c'est bien ça :)
Vous avez une question ? Posez-la de préférence sur le forum et si ça demande un contact plus instantané, n'hésitez pas à vous rendre sur le t'chat IRC. Si votre question est personnelle, contactez-nous directement.
Inconnu
Cet utilisateur a supprimé son compte et n’existe plus.
Messages : 6340
Inscription : 29 décembre 2010 à 18:15

Il copie un dossier ou son contenu?
Avatar de l’utilisateur
Elodie
Fondatrice / Responsable
Fondatrice / Responsable
Messages : 7937
Inscription : 2 avril 2010 à 20:14

iccc a écrit :Il copie un dossier ou son contenu?
Il faut regarder sa documentation mais généralement, lorsque l'on parle de copie de dossier, on copie également son contenu et si on demande en récursif, ça copie également les sous dossiers avec leurs contenus respectifs :)
Vous avez une question ? Posez-la de préférence sur le forum et si ça demande un contact plus instantané, n'hésitez pas à vous rendre sur le t'chat IRC. Si votre question est personnelle, contactez-nous directement.
Inconnu
Cet utilisateur a supprimé son compte et n’existe plus.
Messages : 6340
Inscription : 29 décembre 2010 à 18:15

En fait je m'exprime mal, prenons un dossier A sur le FTP, dans A nous avons les dossiers D et E ainsi que des fichiers.
Je veux copier tout le contenu de A (sans prendre A) dans le dossier B qui est vide lui.
Le problème est que je ne vais pas lister tout les dossier ou fichier et les copié un à un.

Avez vous une idée?

Merci de votre aide.
Avatar de l’utilisateur
Elodie
Fondatrice / Responsable
Fondatrice / Responsable
Messages : 7937
Inscription : 2 avril 2010 à 20:14

Ça a été évoqué dans la documentation par une personne à cette adresse :
http://www.php.net/manual/fr/function.copy.php#104809

La personne crée une fonction de copie récursive :)
Vous avez une question ? Posez-la de préférence sur le forum et si ça demande un contact plus instantané, n'hésitez pas à vous rendre sur le t'chat IRC. Si votre question est personnelle, contactez-nous directement.
Répondre