PHP-Upload de repertoire

Fermé
Ferrari - 24 mars 2004 à 16:59
Tittom Messages postés 422 Date d'inscription mardi 30 mai 2000 Statut Membre Dernière intervention 10 janvier 2007 - 25 mars 2004 à 21:11
Ma fonction:
//Upload of a directory
function ftp_copy($src_dir, $dst_dir)
{
//global $conn_id;
$dirhandle = opendir($src_dir);
//For each element in the directory
while (false !== ($file = readdir($dirhandle)))
{
echo "1-$file";
if ($file != "." && $file != "..") //Avoiding infinite loop
{
echo "2-$file";
if (is_dir($src_dir."/".$file)) //If it is a directory
{
echo 3;
if (!@ftp_chdir($conn_id, $dst_dir."/".$file)) //If the directory does not exist yet
{ echo 4;
ftp_mkdir($conn_id, $dst_dir."/".$file); //Create it
}
echo 5;
ftp_copy($src_dir."/".$file, $dst_dir."/".$file); //Loop the function itself
}
//Upload file
else {
echo "6-$file"; $upload = ftp_put($conn_id, $dst_dir."/".$file, $src_dir."/".$file, FTP_BINARY); }
}
}
closedir($dirhandle);
echo "ftp_copy end";
}
--------------------------------------------------------
L'affichage :
1-2-6-1-2-6-1-2-6-1-2-6-1-2-6-1-2-6-1-2-6-1-2-6-1-2-6-1-2-6-1-2-6-1-2-6-1-2-6-1-2-6-1-2-6-1-2-6-1-2-6-1-2-6-1-2-6-1-2-6-1-2-6-1-2-6-1-2-6-1-2-6-1-2-6-1-2-6-1-2-6-1-2-6-1-2-6-1-2-6-1-2-6-1-2-6-1-2-6-1-2-6-1-2-6-1-2-6- (boucle infinie donc)
-------------------------------------------------------
et si à la place de opendir, readdir et closedir j'utilise la classe dir avec ses méthodes read() et close(), jai une erreur du type :
Fatal error: Call to a member function on a non-object
------------------------------------------------------
Si kkun a une suggestion , je suis tout ouie :-)
merci
A voir également:

1 réponse

Tittom Messages postés 422 Date d'inscription mardi 30 mai 2000 Statut Membre Dernière intervention 10 janvier 2007 128
25 mars 2004 à 21:11
Bonjour,

"Call to a member function on a non-object" semble signifier que tu fais référence à une fonction membre d'une classe sur un élément qui n'est pas un objet (et qui n'a donc pas de classe, et qui n'a donc pas cette fonction).

=> vérifie que tu as bien instancié un objet de la classe dir, en faisant par exemple :
$repertoire = new dir(<parametres s'il y en a>);
PUIS
$repertoire->read();

Je ne connais pas la classe dir, je ne peux donc pas être plus précis que cela.
-- 
Tittom (ça c'est de la signature)
0