userDirectory, $request->filename); $absFilePath = $this->fileRepository->path($filePath); $user = $this->userRepository->find($request->userId); $currentVersion = $this->versionRepository->current($filePath); $versionFile = $this->versionRepository->file($filePath, $request->version); if ($request->url) { $data = file_get_contents( str_replace( $this->serverConfig->get('url.public'), $this->serverConfig->get('url.private'), $request->url), false, stream_context_create(['http' => ['timeout' => 5]]) ); file_put_contents($absFilePath, $data, LOCK_EX); } else { copy($versionFile['path'], $absFilePath); } $versionInfo = VersionInfo::create( Str::uuid(), $request->fileType, $currentVersion + 1, now(), $user->id, ); $version = Version::create($filePath, $versionInfo); $this->versionRepository->save($version); } }