PATH:
home
/
thebhoeo
/
.trash
/
backwpup
/
inc
<?php /** * Folder Downloader. */ /** * Class BackWPup_Destination_Folder_Downloader. * * @since 3.6.0 */ final class BackWPup_Destination_Folder_Downloader implements BackWPup_Destination_Downloader_Interface { public const OPTION_BACKUP_DIR = 'backupdir'; /** * Downloader data object. * * @var \BackWpUp_Destination_Downloader_Data */ private $data; /** * Source file handler. * * @var resource */ private $source_file_handler; /** * Local file handler. * * @var resource */ private $local_file_handler; /** * BackWPup_Destination_Folder_Downloader constructor. * * @param \BackWpUp_Destination_Downloader_Data $data Download data. */ public function __construct( BackWpUp_Destination_Downloader_Data $data ) { $this->data = $data; $this->source_file_handler(); $this->local_file_handler(); } /** * Clean up things. */ public function __destruct() { fclose( $this->local_file_handler ); // phpcs:ignore WordPress.WP.AlternativeFunctions.file_system_operations_fclose fclose( $this->source_file_handler ); // phpcs:ignore WordPress.WP.AlternativeFunctions.file_system_operations_fclose } /** * {@inheritdoc} * * @param int $start_byte Start byte offset. * @param int $end_byte End byte offset. * * @throws Exception When file operations fail. */ public function download_chunk( $start_byte, $end_byte ) { if ( ftell( $this->source_file_handler ) !== $start_byte ) { fseek( $this->source_file_handler, $start_byte ); } $data = fread( $this->source_file_handler, $end_byte - $start_byte + 1 ); // phpcs:ignore WordPress.WP.AlternativeFunctions.file_system_operations_fread if ( false === $data ) { throw new Exception( esc_html__( 'Could not read data from source file.', 'backwpup' ) ); } $bytes = (int) fwrite( $this->local_file_handler, $data ); // phpcs:ignore WordPress.WP.AlternativeFunctions.file_system_operations_fwrite if ( 0 === $bytes ) { throw new Exception( esc_html__( 'Could not write data into target file.', 'backwpup' ) ); } } /** * Calculate the file size. * * @return int */ public function calculate_size() { return filesize( $this->source_backup_file() ); } /** * Retrieve the file handler for the source file. * * @return void * @throws \RuntimeException When the source file cannot be opened. */ private function source_file_handler() { if ( is_resource( $this->source_file_handler ) ) { return; } $file = $this->source_backup_file(); $this->source_file_handler = @fopen( $file, 'rb' ); // phpcs:ignore WordPress.PHP.NoSilencedErrors.Discouraged, WordPress.WP.AlternativeFunctions.file_system_operations_fopen if ( ! is_resource( $this->source_file_handler ) ) { throw new \RuntimeException( esc_html__( 'File could not be opened for reading.', 'backwpup' ) ); } } /** * Get the backup directory. * * @return string */ private function backup_dir() { $backup_dir = esc_attr( BackWPup_Option::get( $this->data->job_id(), self::OPTION_BACKUP_DIR ) ); $backup_dir = trailingslashit( BackWPup_File::get_absolute_path( $backup_dir ) ); return (string) $backup_dir; } /** * Get the backup file path. * * @return string */ private function source_backup_file() { return (string) realpath( BackWPup_Sanitize_Path::sanitize_path( $this->backup_dir() . basename( $this->data->source_file_path() ) ) ); } /** * Retrieve the file handler for the local file. * * @return void * @throws \RuntimeException When the local file cannot be opened. */ private function local_file_handler() { if ( is_resource( $this->local_file_handler ) ) { return; } try { $this->local_file_handler = @fopen( $this->data->local_file_path(), 'wb' ); // phpcs:ignore WordPress.PHP.NoSilencedErrors.Discouraged, WordPress.WP.AlternativeFunctions.file_system_operations_fopen } catch ( \RuntimeException $exc ) { throw new \RuntimeException( esc_html__( 'File could not be opened for writing.', 'backwpup' ) ); } catch ( \LogicException $exc ) { throw new \RuntimeException( sprintf( // translators: $1 is the path of the local file where the backup will be stored. esc_html__( '%s is a directory not a file.', 'backwpup' ), esc_html( $this->data->local_file_path() ) ) ); } } }
[-] class-system-tests-runner.php
[edit]
[-] class-jobtype-dbdump.php
[edit]
[-] class-destination-rsc.php
[edit]
[-] class-encryption.php
[edit]
[-] class-destination-downloader-factory.php
[edit]
[-] class-destination-downloader-interface.php
[edit]
[-] class-destination-ftp-type-ftp.php
[edit]
[-] class-path-fixer.php
[edit]
[-] class-message-box.php
[edit]
[-] class-destination-dropbox-api.php
[edit]
[-] class-option.php
[edit]
[-] class-destination-dropbox-api-request-exception.php
[edit]
[-] class-page-about.php
[edit]
[-] class-migrate.php
[edit]
[-] class-system-requirements.php
[edit]
[-] class-adminbar.php
[edit]
[-] class-msazure-destination-configuration.php
[edit]
[-] class-job.php
[edit]
[-] class-destination-ftp-type-exception.php
[edit]
[-] class-destination-sugarsync-api.php
[edit]
[-] class-download-file-interface.php
[edit]
[-] class-encryption-fallback.php
[edit]
[-] BackWPup.php
[edit]
[-] class-page-backwpup.php
[edit]
[-] class-destination-downloader-data.php
[edit]
[-] class-mysqldump-exception.php
[edit]
[-] class-s3-destination.php
[edit]
[-] class-destination-ftp.php
[edit]
[-] class-cron.php
[edit]
[+]
Notice
[-] class-destination-downloader.php
[edit]
[-] class-destinations.php
[edit]
[-] class-destination-ftp-downloader.php
[edit]
[-] class-destination-dropbox-downloader.php
[edit]
[-] class-download-handler.php
[edit]
[-] class-destination-dropbox.php
[edit]
[-] class-system-tests.php
[edit]
[-] class-destination-folder-downloader.php
[edit]
[-] class-destination-ftp-type.php
[edit]
[-] class-thirdparties.php
[edit]
[-] class-jobtype-wpplugin.php
[edit]
[-] class-directory.php
[edit]
[-] class-recursive-directory.php
[edit]
[-] class-destination-msazure-downloader.php
[edit]
[-] class-destination-connect-interface.php
[edit]
[-] class-install.php
[edit]
[-] class-admin.php
[edit]
[-] class-jobtype-file.php
[edit]
[-] functions.php
[edit]
[+]
Utils
[+]
ThirdParty
[-] class-destination-s3-downloader.php
[edit]
[-] class-destination-rsc-downloader.php
[edit]
[-] class-destination-sugarsync-downloader.php
[edit]
[-] class-destination-email.php
[edit]
[+]
..
[-] class-mysqldump.php
[edit]
[-] class-page-firstbackup.php
[edit]
[-] class-jobtype-wpexp.php
[edit]
[-] class-jobtype-dbcheck.php
[edit]
[-] class-file.php
[edit]
[-] class-sanitize-path.php
[edit]
[+]
Settings
[-] class-destination-s3.php
[edit]
[-] class-page-logs.php
[edit]
[-] class-factory-exception.php
[edit]
[-] class-page-restore.php
[edit]
[+]
dependencies
[-] class-create-archive-exception.php
[edit]
[-] class-page-editjob.php
[edit]
[-] class-page-backups.php
[edit]
[-] class-destination-dropbox-api-exception.php
[edit]
[-] class-create-archive.php
[edit]
[-] class-encryption-openssl.php
[edit]
[-] class-destination-onedrive-config-trait.php
[edit]
[-] class-destination-download-exception.php
[edit]
[-] class-download-file.php
[edit]
[-] class-page-settings.php
[edit]
[-] class-destination-msazure.php
[edit]
[-] class-page-onboarding.php
[edit]
[-] class-destination-folder.php
[edit]
[-] class-jobtypes.php
[edit]
[-] class-destination-connect-exception.php
[edit]
[-] class-destination-sugarsync.php
[edit]
[-] class-page-jobs.php
[edit]
[-] class-destination-sugarsync-api-exception.php
[edit]
[-] class-encryption-mcrypt.php
[edit]