helper = resolve(HelperService::class); } /** * Get generated zip for guest * * @param $id * @param $token * @return \Symfony\Component\HttpFoundation\StreamedResponse */ public function get_zip_public($id, $token) { $disk = Storage::disk('local'); $zip = Zip::where('id', $id) ->where('shared_token', $token) ->first(); $zip ->user ->record_download( $disk->size("zip/$zip->basename") ); return $disk ->download("zip/$zip->basename", $zip->basename, [ "Content-Type" => 'application/zip', "Content-Length" => $disk->size("zip/$zip->basename"), "Accept-Ranges" => "bytes", "Content-Range" => "bytes 0-600/" . $disk->size("zip/$zip->basename"), "Content-Disposition" => "attachment; filename=" . $zip->basename, ]); } /** * Get file public * * @param $filename * @param $permission * @param Share $shared * @return mixed */ public function get_file_public($filename, $permission, Share $shared) { // Check ability to access protected share files $this->helper->check_protected_share_record($shared, $permission); // Get file record $file = UserFile::where('user_id', $shared->user_id) ->where('basename', $filename) ->firstOrFail(); // Check file access $this->helper->check_guest_access_to_shared_items($shared, $file); // Store user download size $shared ->user ->record_download( (int)$file->getRawOriginal('filesize') ); return $this->helper->download_file($file, $shared->user_id); } /** * Get public image thumbnail * * @param $filename * @param $permission * @param Share $shared * @return mixed */ public function get_thumbnail_public($filename, $permission, Share $shared) { // Check ability to access protected share files $this->helper->check_protected_share_record($shared, $permission); // Get file record $file = UserFile::where('user_id', $shared->user_id) ->where('thumbnail', $filename) ->firstOrFail(); // Check file access $this->helper->check_guest_access_to_shared_items($shared, $file); // Store user download size $shared ->user ->record_download( (int)$file->getRawOriginal('filesize') ); return $this->helper->download_thumbnail_file($file, $shared->user_id); } }