Priority File Manager

📁 public_html
Base Directory:
/home/ecedu/public_html/wp-content/plugins/updraftplus/includes
NameTypeSizeActions
📁 .. Folder -
📁 Dropbox2 Folder -
📁 Google Folder -
📄 S3.php File 78483
Edit Download
📄 S3compat.php File 31581
Edit Download
📁 blockui Folder -
📄 cacert.pem File 221470
Edit Download
📁 checkout-embed Folder -
📄 class-backup-history.php File 40508
Edit Download
📄 class-commands.php File 49966
Edit Download
📄 class-database-utility.php File 37569
Edit Download
📄 class-filesystem-functions.php File 41611
Edit Download
📄 class-http-error-descriptions.php File 11669
Edit Download
📄 class-job-scheduler.php File 10552
Edit Download
📄 class-manipulation-functions.php File 17139
Edit Download
📄 class-partialfileservlet.php File 7558
Edit Download
📄 class-remote-send.php File 32760
Edit Download
📄 class-search-replace.php File 20570
Edit Download
📄 class-semaphore.php File 6757
Edit Download
📄 class-storage-methods-interface.php File 18664
Edit Download
📄 class-updraft-dashboard-news.php File 8242
Edit Download
📄 class-updraft-semaphore.php File 7693
Edit Download
📄 class-updraftcentral-updraftplus-commands.php File 1857
Edit Download
📄 class-updraftplus-encryption.php File 14031
Edit Download
📄 class-wpadmin-commands.php File 39447
Edit Download
📄 class-zip.php File 18336
Edit Download
📁 cloudfiles Folder -
📄 ftp.class.php File 6769
Edit Download
📄 get-cpanel-quota-usage.pl File 408
Edit Download
📄 google-extensions.php File 9497
Edit Download
📁 handlebars Folder -
📁 images Folder -
📄 jquery-ui.custom-v1.11.4-1-25-7.min.css File 38751
Edit Download
📄 jquery-ui.custom-v1.11.4-1-25-7.min.css.map File 58374
Edit Download
📄 jquery-ui.custom-v1.11.4.css File 43193
Edit Download
📄 jquery-ui.custom-v1.12.1-1-25-7.min.css File 40497
Edit Download
📄 jquery-ui.custom-v1.12.1-1-25-7.min.css.map File 60839
Edit Download
📄 jquery-ui.custom-v1.12.1.css File 45090
Edit Download
📁 jquery-ui.dialog.extended Folder -
📁 jquery.serializeJSON Folder -
📁 jstree Folder -
📁 labelauty Folder -
📄 migrator-lite.php File 53735
Edit Download
📁 pcloud Folder -
📁 select2 Folder -
📁 tether Folder -
📁 tether-shepherd Folder -
📄 updraft-admin-common-1-25-7.min.js File 158895
Edit Download
📄 updraft-admin-common.js File 263234
Edit Download
📄 updraft-restorer-skin-compatibility.php File 452
Edit Download
📄 updraft-restorer-skin.php File 1723
Edit Download
📄 updraftcentral.php File 3464
Edit Download
📁 updraftclone Folder -
📄 updraftplus-clone.php File 7237
Edit Download
📄 updraftplus-login.php File 4368
Edit Download
📄 updraftplus-notices.php File 18842
Edit Download
📄 updraftplus-tour.php File 13521
Edit Download
📄 updraftvault.php File 2040
Edit Download
resumeUri = $resumeUri; } public function updraftplus_setProgress($progress) { $this->progress = $progress; } // N.B. a public method getResumeUri already exists - and does something completely different public function updraftplus_getResumeUri() { return empty($this->resumeUri) ? '' : $this->resumeUri; } } */ /** * Copyright 2012 Google Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ if (!class_exists('UDP_Google_Client')) { require_once dirname(__FILE__) . '/Google/autoload.php'; } /** * Manage large file uploads, which may be media but can be any type * of sizable data. */ class UpdraftPlus_Google_Http_MediaFileUpload { public function updraftplus_setResumeUri($resumeUri) { $this->resumeUri = $resumeUri; } public function updraftplus_setProgress($progress) { $this->progress = $progress; } //N.B. a public method getResumeUri already exists - and does something completely different public function updraftplus_getResumeUri() { return $this->resumeUri; } const UPLOAD_MEDIA_TYPE = 'media'; const UPLOAD_MULTIPART_TYPE = 'multipart'; const UPLOAD_RESUMABLE_TYPE = 'resumable'; /** @var string $mimeType */ private $mimeType; /** @var string $data */ private $data; /** @var bool $resumable */ private $resumable; /** @var int $chunkSize */ private $chunkSize; /** @var int $size */ private $size; /** @var string $resumeUri */ private $resumeUri; /** @var int $progress */ private $progress; /** @var UDP_Google_Client */ private $client; /** @var Google_Http_Request */ private $request; /** @var string */ private $boundary; /** * Result code from last HTTP call * @var int */ private $httpResultCode; /** * @param $mimeType string * @param $data string The bytes you want to upload. * @param $resumable bool * @param bool $chunkSize File will be uploaded in chunks of this many bytes. * only used if resumable=True */ public function __construct( UDP_Google_Client $client, UDP_Google_Http_Request $request, $mimeType, $data, $resumable = false, $chunkSize = false, $boundary = false ) { $this->client = $client; $this->request = $request; $this->mimeType = $mimeType; $this->data = $data; $this->size = is_null($this->data) ? 0 : strlen($this->data); $this->resumable = $resumable; if (!$chunkSize) { $chunkSize = 256 * 1024; } $this->chunkSize = $chunkSize; $this->progress = 0; $this->boundary = $boundary; // Process Media Request $this->process(); } /** * Set the size of the file that is being uploaded. * @param $size - int file size in bytes */ public function setFileSize($size) { $this->size = $size; } /** * Return the progress on the upload * @return int progress in bytes uploaded. */ public function getProgress() { return $this->progress; } /** * Return the HTTP result code from the last call made. * @return int code */ public function getHttpResultCode() { return $this->httpResultCode; } /** * Send the next part of the file to upload. * * @param [$chunk] the next set of bytes to send. If false will used $data passed * at construct time. */ public function nextChunk($chunk = false) { if (false == $this->resumeUri) { $this->resumeUri = $this->getResumeUri(); } if (false == $chunk) { $chunk = substr($this->data, $this->progress, $this->chunkSize); } $lastBytePos = $this->progress + strlen($chunk) - 1; $headers = array( 'content-range' => "bytes $this->progress-$lastBytePos/$this->size", 'content-type' => $this->request->getRequestHeader('content-type'), 'content-length' => strlen($chunk), 'expect' => '', ); $httpRequest = new UDP_Google_Http_Request( $this->resumeUri, 'PUT', $headers, $chunk ); if ($this->client->getClassConfig("UDP_Google_Http_Request", "enable_gzip_for_uploads")) { $httpRequest->enableGzip(); } else { $httpRequest->disableGzip(); } $response = $this->client->getIo()->makeRequest($httpRequest); $response->setExpectedClass($this->request->getExpectedClass()); $code = $response->getResponseHttpCode(); $this->httpResultCode = $code; if (308 == $code) { // Track the amount uploaded. $range = explode('-', $response->getResponseHeader('range')); $this->progress = $range[1] + 1; // Allow for changing upload URLs. $location = $response->getResponseHeader('location'); if ($location) { $this->resumeUri = $location; } // No problems, but upload not complete. return false; } else { return UDP_Google_Http_REST::decodeHttpResponse($response, $this->client); } } /** * @param $meta * @param $params * @return array|bool * @visible for testing */ private function process() { $postBody = false; $contentType = false; $meta = $this->request->getPostBody(); $meta = is_string($meta) ? json_decode($meta, true) : $meta; $uploadType = $this->getUploadType($meta); $this->request->setQueryParam('uploadType', $uploadType); $this->transformToUploadUrl(); $mimeType = $this->mimeType ? $this->mimeType : $this->request->getRequestHeader('content-type'); if (self::UPLOAD_RESUMABLE_TYPE == $uploadType) { $contentType = $mimeType; $postBody = is_string($meta) ? $meta : json_encode($meta); } else if (self::UPLOAD_MEDIA_TYPE == $uploadType) { $contentType = $mimeType; $postBody = $this->data; } else if (self::UPLOAD_MULTIPART_TYPE == $uploadType) { // This is a multipart/related upload. $boundary = $this->boundary ? $this->boundary : mt_rand(); $boundary = str_replace('"', '', $boundary); $contentType = 'multipart/related; boundary=' . $boundary; $related = "--$boundary\r\n"; $related .= "Content-Type: application/json; charset=UTF-8\r\n"; $related .= "\r\n" . json_encode($meta) . "\r\n"; $related .= "--$boundary\r\n"; $related .= "Content-Type: $mimeType\r\n"; $related .= "Content-Transfer-Encoding: base64\r\n"; $related .= "\r\n" . base64_encode($this->data) . "\r\n"; $related .= "--$boundary--"; $postBody = $related; } $this->request->setPostBody($postBody); if (isset($contentType) && $contentType) { $contentTypeHeader['content-type'] = $contentType; $this->request->setRequestHeaders($contentTypeHeader); } } private function transformToUploadUrl() { $base = $this->request->getBaseComponent(); $this->request->setBaseComponent($base . '/upload'); } /** * Valid upload types: * - resumable (UPLOAD_RESUMABLE_TYPE) * - media (UPLOAD_MEDIA_TYPE) * - multipart (UPLOAD_MULTIPART_TYPE) * @param $meta * @return string * @visible for testing */ public function getUploadType($meta) { if ($this->resumable) { return self::UPLOAD_RESUMABLE_TYPE; } if (false == $meta && $this->data) { return self::UPLOAD_MEDIA_TYPE; } return self::UPLOAD_MULTIPART_TYPE; } private function getResumeUri() { $result = null; $body = $this->request->getPostBody(); if ($body) { $headers = array( 'content-type' => 'application/json; charset=UTF-8', 'content-length' => Google_Utils::getStrLen($body), 'x-upload-content-type' => $this->mimeType, 'x-upload-content-length' => $this->size, 'expect' => '', ); $this->request->setRequestHeaders($headers); } $response = $this->client->getIo()->makeRequest($this->request); $location = $response->getResponseHeader('location'); $code = $response->getResponseHttpCode(); if (200 == $code && true == $location) { return $location; } $message = $code; $body = @json_decode($response->getResponseBody()); if (!empty( $body->error->errors ) ) { $message .= ': '; foreach ($body->error->errors as $error) { $message .= "{$error->domain}, {$error->message};"; } $message = rtrim($message, ';'); } $error = "Failed to start the resumable upload (HTTP {$message})"; $this->client->getLogger()->error($error); throw new Google_Exception($error); // phpcs:ignore WordPress.Security.EscapeOutput.ExceptionNotEscaped -- Error message to be escaped when caught and printed. } }