PluginProbe ʕ •ᴥ•ʔ
JetBackup – Backup, Restore & Migrate / 3.1.13.4
JetBackup – Backup, Restore & Migrate v3.1.13.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 / Local / ChunkedDownload.php
backup / src / JetBackup / Destination / Vendors / Local Last commit date
.htaccess 9 months ago ChunkedDownload.php 9 months ago ChunkedUpload.php 9 months ago DirIterator.php 9 months ago Local.php 9 months ago index.html 9 months ago web.config 9 months 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 }