Comment changer les permissions du fichier sur le serveur sFTP avec phpseclib?
Question
J'ai essayé $ sftp- > chmod ('0755', "file.zip");
et $ sftp- > chmod ('0755', "fichier." zip ");
Mais dans les deux cas, l'autorisation a été définie sur 363 à la place.
La solution
0755 et '0755' ne correspondent pas à la démonstration suivante:
<?php echo '0755' == 0755 ? 'equal' : 'not equal'; ?>;
Par là, essayez de supprimer les guillemets simples autour de 0755.
La raison pour laquelle phpseclib s'attend à ce que les autorisations soient représentées sous la forme d'une valeur octale ('0755' est converti en une valeur décimale - et non une valeur octale), c'est parce que ftp_chmod
le fait et c'est ce que Net_SFTP :: chmod ()
est modélisé d'après. (en fait, la quasi-totalité de l'API SFTP de phpseclib est calquée sur l'API d'extension FTP de PHP)
Autres conseils
Les autorisations sont, à un moment donné, de 1363. En d'autres termes, octal (755). C'est une supposition complète, mais je suggérerais que la fonction chmod utilise un mode décimal plutôt qu'un mode octal.
Vous pouvez utiliser
$sftp->chmod(0755, $file);
Vous ne devez pas entrer d'autorisations dans la fonction phpseclib chmod ()
en tant que chaîne.