PluginProbe ʕ •ᴥ•ʔ
JetBackup – Backup, Restore & Migrate / 3.1.22.4
JetBackup – Backup, Restore & Migrate v3.1.22.4
3.1.22.4 3.1.22.3 1.4.3 1.4.4 1.4.5 1.4.6 1.4.7 1.4.8 1.4.8.1 1.4.9 1.5.0 1.5.1 1.5.1.1 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.6.0 1.6.10 1.6.11 1.6.12 1.6.13 1.6.15 1.6.5.1 1.6.8.8 1.6.9 1.6.9.1 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7.5 2.0.8.7 2.0.9.11 2.0.9.14 2.0.9.15 2.0.9.6 2.0.9.7 2.0.9.9 3.1.10.7 3.1.11.1 3.1.12.3 3.1.13.4 3.1.14.17 3.1.15.4 3.1.16.1 3.1.17.5 3.1.18.10 3.1.18.8 3.1.18.9 3.1.19.8 3.1.20.3 3.1.21.3 3.1.7.9 3.1.9.2 trunk 1.1.90 1.1.91 1.2.0 1.2.5 1.2.6 1.2.7 1.2.8 1.2.9 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 1.3.6 1.3.7 1.3.8 1.3.9 1.4.0 1.4.1 1.4.2
backup / src / JetBackup / Destination / Vendors / Imported / ChunkedDownload.php
backup / src / JetBackup / Destination / Vendors / Imported Last commit date
.htaccess 4 months ago ChunkedDownload.php 4 months ago ChunkedUpload.php 4 months ago DirIterator.php 4 months ago Imported.php 4 months ago index.html 4 months ago web.config 4 months ago
ChunkedDownload.php
38 lines
1 <?php
2
3 namespace JetBackup\Destination\Vendors\Imported;
4
5 use JetBackup\Destination\Integration\DestinationChunkedDownload;
6
7 if (!defined( '__JETBACKUP__')) die('Direct access is not allowed');
8
9 class ChunkedDownload implements DestinationChunkedDownload {
10
11 private $_source;
12 private $_destination;
13
14 public function __construct($source, $destination) {
15 $this->_source = fopen($source, 'r');
16 $this->_destination = fopen($destination, 'a');
17 }
18
19 /**
20 * @return string
21 */
22 public function download(int $start, int $end):int {
23 fseek($this->_source, $start);
24
25 $readed = 0;
26 $left = $end - $start;
27
28 while($left && !feof($this->_source)) {
29 $read = fread($this->_source, min($left, 1024 * 1024));
30 fwrite($this->_destination, $read);
31 $left -= strlen($read);
32 $readed += strlen($read);
33 }
34
35 return $readed;
36 }
37 }
38