PHP-Upload de repertoire
Ferrari
-
Tittom Messages postés 422 Date d'inscription Statut Membre Dernière intervention -
Tittom Messages postés 422 Date d'inscription Statut Membre Dernière intervention -
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
//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:
- PHP-Upload de repertoire
- Youtube upload - Télécharger - Diffusion
- Easy php - Télécharger - Divers Web & Internet
- Répertoire téléphonique gratuit - Télécharger - Bureautique
- Pourquoi certains contacts disparaissent de mon répertoire - Accueil - Guide Android
- Expert php pinterest - Télécharger - Langages
1 réponse
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)
"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)