ssh2_scp_recv() ne fonctionne pas [RESOLU]

Eléphanteau du PHP | 14 Messages

07 déc. 2010, 18:26

Bonjour à tous,

J'aimerais utiliser la fonction ssh2_scp_recv() pour copier des fichiers entre deux machines, en vain.
Mon serveur PHP fonctionne sous Slackware 13.1i386 et les machines distantes sont sous Windows Vista 32 et sous slackware/fedora.

Pour mes tests j'essaye tout simplement :
if (ssh2_scp_recv($cnx,'C:/Users/[....]/Windows.txt','/home/[....]/Windows.txt')) {
		print "ok for the copy<br>";
		} else {
		print "there's something wrong with the copy<br>";
		}
mais la copie ne se fait pas. En ligne de commande, la copie elle se passe bien.

Ou est mon erreur?
Je vais devoir me rabatre sur une solution ssh2_sftp mais cela ne m'enchante guère.
Tous les conseils sont les bienvenue.


Fred.
Modifié en dernier par fredmj le 07 déc. 2010, 22:02, modifié 1 fois.
"Errare humanum est, perseverare diabolicum"

Eléphanteau du PHP | 14 Messages

07 déc. 2010, 22:01

Et bien!
Cela aura au moins eut le mérite de m'obliger à introduire la gestion des exceptions dans mes codes.
Ainsi un
if(!@ssh2_scp_recv($cnx,"c:\\Users\\monutilisateur\\Windows.txt",'/home/monutilisateur/Windows.txt'))
{
    $errors= error_get_last();
    echo "COPY ERROR: ".$errors['type'];
    echo "<br />\n".$errors['message'];
} else {
    echo "File copied from remote!";
}
m'a finalement permis d'obtenir un bien explicite :
COPY ERROR: 2
ssh2_scp_recv() [function.ssh2-scp-recv]: Unable to write to local file
j'ai donc opté pour une copie vers le répertoire /tmp de mon serveur.
J'ai l'impression que je vais ouvrir un nouveau post a propos des bonnes pratiques en matière de téléchargement de fichiers.

Fred
"Errare humanum est, perseverare diabolicum"