/** * @param File $file * @param $data * * @return File|false */ public function update(File $file, $data) { if (!is_null($file->path)) { $currentFilePath = $file->path; } $file->fill(array_merge($data, [File::PATH => FilesStorage::getFilesDirectory() . $data[File::CLIENT_ORIGINAL_NAME]])); $fileIsStored = Storage::put($file->path, file_get_contents($data[File::TEMPORARY_PATH])); if (!$fileIsStored || !$file->save()) { return false; } if (isset($currentFilePath)) { Storage::delete($currentFilePath); } return $file; }