PluginProbe ʕ •ᴥ•ʔ
JetBackup – Backup, Restore & Migrate / trunk
JetBackup – Backup, Restore & Migrate vtrunk
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 / Local / ChunkedDownload.php
backup / src / JetBackup / Destination / Vendors / Local Last commit date
.htaccess 1 year ago ChunkedDownload.php 1 year ago ChunkedUpload.php 1 year ago DirIterator.php 1 year ago Local.php 1 year ago index.html 1 year ago web.config 1 year ago
ChunkedDownload.php
37 lines
1 <?php
2
3 namespace JetBackup\Destination\Vendors\Local;
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 }