Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- require_once 'http.php';
- // fill this with actual values
- $url = 'http://www.google.ru/images/srpr/logo3w.png';
- $file_size = 7007;
- $name = 'test.bin';
- $server_http_range = isset($_SERVER['HTTP_RANGE']) ? $_SERVER['HTTP_RANGE'] : false;
- $request_ranges = array();
- if ($server_http_range) {
- $range_list = HTTP\parse_range_request($file_size, $server_http_range);
- if ($range_list === false) {
- exit();
- }
- if (empty($range_list)) {
- header('Status: 416 Requested range not satisfiable');
- exit();
- }
- foreach ($range_list as $range) {
- $request_ranges[] = $range->get_first_pos() . '-' . $range->get_last_pos();
- }
- header('Status: 206 Partial Content');
- } else {
- $request_ranges[] = "0-" . ($file_size - 1);
- header('Status: 200 Ok');
- header('Content-Length: ' . $file_size);
- }
- header('Content-Type: application/octet-stream');
- header('Accept-Ranges: bytes');
- header('Content-Disposition: attachment; filename="' . $name . '";');
- $ch = curl_init();
- curl_setopt($ch, CURLOPT_VERBOSE, 1);
- curl_setopt($ch, CURLOPT_URL, $url);
- curl_setopt($ch, CURLOPT_RANGE, implode(',', $request_ranges));
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);
- curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
- curl_setopt($ch, CURLOPT_USERAGENT, $user_agent);
- $result = curl_exec($ch);
- curl_close($ch);
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement