diff --git a/lib/private/Files/ObjectStore/ObjectStoreStorage.php b/lib/private/Files/ObjectStore/ObjectStoreStorage.php index e855c166612c267703b1d00fdb1b492e27f1b6ed..9815fe6a2453936133b3b92fc0df9cbf275d969f 100644 --- a/lib/private/Files/ObjectStore/ObjectStoreStorage.php +++ b/lib/private/Files/ObjectStore/ObjectStoreStorage.php @@ -439,9 +439,9 @@ class ObjectStoreStorage extends \OC\Files\Storage\Common { public function file_put_contents($path, $data) { $handle = $this->fopen($path, 'w+'); - fwrite($handle, $data); + $result = fwrite($handle, $data); fclose($handle); - return true; + return $result; } public function writeStream(string $path, $stream, int $size = null): int { diff --git a/lib/private/Files/Storage/DAV.php b/lib/private/Files/Storage/DAV.php index 163185db54106cdf7585090f3fe5501d333bd1cf..8f5001c8143e019b50e92dde50513bd0244ca66e 100644 --- a/lib/private/Files/Storage/DAV.php +++ b/lib/private/Files/Storage/DAV.php @@ -486,8 +486,8 @@ class DAV extends Common { /** * @param string $path - * @param string $data - * @return int + * @param mixed $data + * @return int|false */ public function file_put_contents($path, $data) { $path = $this->cleanPath($path); diff --git a/lib/private/Files/Storage/Flysystem.php b/lib/private/Files/Storage/Flysystem.php index a7747823acc701813eec7b03c5ba48d1cbc3ef5d..9b26516bef3d8226d34789c3de5c44942e270e0b 100644 --- a/lib/private/Files/Storage/Flysystem.php +++ b/lib/private/Files/Storage/Flysystem.php @@ -73,7 +73,11 @@ abstract class Flysystem extends Common { * {@inheritdoc} */ public function file_put_contents($path, $data) { - return $this->flysystem->put($this->buildPath($path), $data); + $result = $this->flysystem->put($this->buildPath($path), $data); + if ($result === true) { + return strlen($data); + } + return $result; } /** diff --git a/lib/private/Files/Storage/Local.php b/lib/private/Files/Storage/Local.php index 240da5954949ea1966e086a91b8039fcf099a619..5d0ce596b11f7832b27f9ec5f391d2d193eadbb0 100644 --- a/lib/private/Files/Storage/Local.php +++ b/lib/private/Files/Storage/Local.php @@ -557,7 +557,7 @@ class Local extends \OC\Files\Storage\Common { } public function writeStream(string $path, $stream, int $size = null): int { - $result = file_put_contents($this->getSourcePath($path), $stream); + $result = $this->file_put_contents($path, $stream); if ($result === false) { throw new GenericFileException("Failed write steam to $path"); } else { diff --git a/lib/private/Files/Storage/Wrapper/Encoding.php b/lib/private/Files/Storage/Wrapper/Encoding.php index fed4d26faf5c8b0c85eb6bb6d4a07699e6e831e2..b837f77fbbc68dec972ffd054d942749aff790f3 100644 --- a/lib/private/Files/Storage/Wrapper/Encoding.php +++ b/lib/private/Files/Storage/Wrapper/Encoding.php @@ -309,8 +309,8 @@ class Encoding extends Wrapper { * see http://php.net/manual/en/function.file_put_contents.php * * @param string $path - * @param string $data - * @return bool + * @param mixed $data + * @return int|false */ public function file_put_contents($path, $data) { return $this->storage->file_put_contents($this->findPathToUse($path), $data); diff --git a/lib/private/Files/Storage/Wrapper/Encryption.php b/lib/private/Files/Storage/Wrapper/Encryption.php index d3b1880a81318ce369b14e2d2f5e5dff55d069b0..8efb1c20980cae508cd475f0adc71f3359060820 100644 --- a/lib/private/Files/Storage/Wrapper/Encryption.php +++ b/lib/private/Files/Storage/Wrapper/Encryption.php @@ -234,8 +234,8 @@ class Encryption extends Wrapper { * see http://php.net/manual/en/function.file_put_contents.php * * @param string $path - * @param string $data - * @return bool + * @param mixed $data + * @return int|false */ public function file_put_contents($path, $data) { // file put content will always be translated to a stream write diff --git a/lib/private/Files/Storage/Wrapper/Jail.php b/lib/private/Files/Storage/Wrapper/Jail.php index 449a238096d5e18afb698a7152d0adf227b90e9c..2396c07a0f18b99a2bed1caf8aae3d70e7bdd93f 100644 --- a/lib/private/Files/Storage/Wrapper/Jail.php +++ b/lib/private/Files/Storage/Wrapper/Jail.php @@ -259,8 +259,8 @@ class Jail extends Wrapper { * see http://php.net/manual/en/function.file_put_contents.php * * @param string $path - * @param string $data - * @return bool + * @param mixed $data + * @return int|false */ public function file_put_contents($path, $data) { return $this->getWrapperStorage()->file_put_contents($this->getUnjailedPath($path), $data); diff --git a/lib/private/Files/Storage/Wrapper/Quota.php b/lib/private/Files/Storage/Wrapper/Quota.php index 10edd940d7d9d9cd1bf6bbb426d8aa1bf6a9bf53..4de1c091a97d1b0e1a16a326c064c75c94002315 100644 --- a/lib/private/Files/Storage/Wrapper/Quota.php +++ b/lib/private/Files/Storage/Wrapper/Quota.php @@ -122,8 +122,8 @@ class Quota extends Wrapper { * see http://php.net/manual/en/function.file_put_contents.php * * @param string $path - * @param string $data - * @return bool + * @param mixed $data + * @return int|false */ public function file_put_contents($path, $data) { $free = $this->free_space($path); diff --git a/lib/private/Files/Storage/Wrapper/Wrapper.php b/lib/private/Files/Storage/Wrapper/Wrapper.php index 227e7d8e55e55e851ce5759ac424028a3e306f81..e94f3714c9ede2813d91b6d54c8e33dfd901bbd7 100644 --- a/lib/private/Files/Storage/Wrapper/Wrapper.php +++ b/lib/private/Files/Storage/Wrapper/Wrapper.php @@ -250,8 +250,8 @@ class Wrapper implements \OC\Files\Storage\Storage, ILockingStorage, IWriteStrea * see http://php.net/manual/en/function.file_put_contents.php * * @param string $path - * @param string $data - * @return bool + * @param mixed $data + * @return int|false */ public function file_put_contents($path, $data) { return $this->getWrapperStorage()->file_put_contents($path, $data); diff --git a/lib/public/Files/Storage.php b/lib/public/Files/Storage.php index 60a0917c0405785f65b2cbf09973ed62b9684fe5..11aa7434708eb994f90e1b77ad925c08a8ea0fd6 100644 --- a/lib/public/Files/Storage.php +++ b/lib/public/Files/Storage.php @@ -230,8 +230,8 @@ interface Storage extends IStorage { * see http://php.net/manual/en/function.file_put_contents.php * * @param string $path - * @param string $data - * @return bool + * @param mixed $data + * @return int|false * @since 6.0.0 */ public function file_put_contents($path, $data); diff --git a/lib/public/Files/Storage/IStorage.php b/lib/public/Files/Storage/IStorage.php index f5073d1ad7362208449be256eb9922588500b1b0..9cd5553b8bf6650345c850497d2a8f571c73a8e5 100644 --- a/lib/public/Files/Storage/IStorage.php +++ b/lib/public/Files/Storage/IStorage.php @@ -226,8 +226,8 @@ interface IStorage { * see http://php.net/manual/en/function.file_put_contents.php * * @param string $path - * @param string $data - * @return bool + * @param mixed $data + * @return int|false * @since 9.0.0 */ public function file_put_contents($path, $data);