Frage

Ich habe versucht, $sftp->chmod('0755', "file.zip"); und $sftp->chmod('0755', "file.zip");

Aber in beiden Fällen die Erlaubnis hat, auf 363 statt gesetzt wurde.

War es hilfreich?

Lösung

0755 und '0755' sind nicht das gleiche wie thusly demonstriert:

<?php echo '0755' == 0755 ? 'equal' : 'not equal'; ?>;

Per dass, versuchen Sie, die einfachen Anführungszeichen um 0755 zu entfernen.

Der Grund phpseclib erwartet Berechtigungen als Oktalwert dargestellt werden ( ‚0755‘ in einen Dezimalwert umgewandelt wird - nicht ein Oktal eins) ist, weil das ist, wie ftp_chmod es tut und das ist, was Net_SFTP::chmod() nach modelliert wird. (Eigentlich ziemlich alle phpseclib SFTP-API ist nach dem Vorbild der PHP-FTP-Erweiterung API)

Andere Tipps

Bei einer Vermutung der Berechtigungen sind 1363. Mit anderen Worten Oktal (755). Es ist eine komplette Vermutung, aber ich würde vorschlagen, dass die chmod Funktion eine Dezimalmodus nimmt, anstatt eine Oktal ein.

Sie können mit

$sftp->chmod(0755, $file);

Sie sollten nicht Eingabeberechtigungen in die phpseclib chmod() Funktion als String zurück.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top