📜 ⬆️ ⬇️

Multiple downloading files from the archive with support for RANGE requests

Sometimes it is useful not to save a bunch of files on any hosting, but to use only one archive file. But there is a problem of access to a specific file in the archive. I bring to your attention a PHP script that allows you to load a part of an archive file as a whole file. Supports reloading via RANGE requests. The archive, in this case, is just a gluing together of multiple files. The script is currently tested with Flashget download manager.

To upload a specific file, it is enough to indicate its offset in the archive file, the size and name of this file as follows:

htp: //address/script_name.php? name = filename & offset = 3000 & size = 100

As a result, the user of such a link will receive a file of 100 bytes in size with the name filename, which is located at an offset of 3000 archive files.
')
Copy Source | Copy HTML <?php $offset = isset ( $_REQUEST [ 'offset' ]) ? (int) $_REQUEST [ 'offset' ] : 0; $size = isset ( $_REQUEST [ 'size' ]) ? (int) $_REQUEST [ 'size' ] : false ; $name = isset ( $_REQUEST [ 'name' ]) ? urlencode( $_REQUEST [ 'name' ]) : 'download.bin' ; if ( empty ( $size )) die ; // link to archive file $url = 'http://archive_file_url' ; @set_time_limit(0); $range_size = $size ; $range_offset = $offset ; if ( isset ( $_SERVER [ 'HTTP_RANGE' ])) { if (preg_match( '/^bytes=(\d+)\-$/' , $_SERVER [ 'HTTP_RANGE' ], $m )) { $range_offset += $m [ 1 ]; $range_size -= $m [ 1 ]; } elseif (preg_match( '/^bytes=(\d+)\-(\d+)$/' , $_SERVER [ 'HTTP_RANGE' ], $m )) { $range_offset += $m [ 1 ]; $range_size = $m [ 2 ]- $m [ 1 ]+ 1 ; } else { // TODO (aig): support other ranges if needed die (); } header( 'HTTP/1.1 206 Partial Content' ); } else { header( 'HTTP/1.1 200 Ok' ); } $range = ( $range_offset ). "-" .( $range_offset + $range_size - 1 ); header( "Content-Type: application/octet-stream" ); header( "Accept-Ranges: bytes" ); header( "Content-Length: $range_size" ); header( 'Content-Disposition: attachment; filename="' . $name . '";' ); $ch = curl_init(); curl_setopt( $ch ,CURLOPT_URL, $url ); curl_setopt( $ch ,CURLOPT_RANGE, $range ); curl_setopt( $ch ,CURLOPT_RETURNTRANSFER,0); curl_setopt( $ch ,CURLOPT_FOLLOWLOCATION, 1 ); curl_setopt( $ch ,CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3' ); curl_exec( $ch ); curl_close( $ch ); ?>
  1. Copy Source | Copy HTML <?php $offset = isset ( $_REQUEST [ 'offset' ]) ? (int) $_REQUEST [ 'offset' ] : 0; $size = isset ( $_REQUEST [ 'size' ]) ? (int) $_REQUEST [ 'size' ] : false ; $name = isset ( $_REQUEST [ 'name' ]) ? urlencode( $_REQUEST [ 'name' ]) : 'download.bin' ; if ( empty ( $size )) die ; // link to archive file $url = 'http://archive_file_url' ; @set_time_limit(0); $range_size = $size ; $range_offset = $offset ; if ( isset ( $_SERVER [ 'HTTP_RANGE' ])) { if (preg_match( '/^bytes=(\d+)\-$/' , $_SERVER [ 'HTTP_RANGE' ], $m )) { $range_offset += $m [ 1 ]; $range_size -= $m [ 1 ]; } elseif (preg_match( '/^bytes=(\d+)\-(\d+)$/' , $_SERVER [ 'HTTP_RANGE' ], $m )) { $range_offset += $m [ 1 ]; $range_size = $m [ 2 ]- $m [ 1 ]+ 1 ; } else { // TODO (aig): support other ranges if needed die (); } header( 'HTTP/1.1 206 Partial Content' ); } else { header( 'HTTP/1.1 200 Ok' ); } $range = ( $range_offset ). "-" .( $range_offset + $range_size - 1 ); header( "Content-Type: application/octet-stream" ); header( "Accept-Ranges: bytes" ); header( "Content-Length: $range_size" ); header( 'Content-Disposition: attachment; filename="' . $name . '";' ); $ch = curl_init(); curl_setopt( $ch ,CURLOPT_URL, $url ); curl_setopt( $ch ,CURLOPT_RANGE, $range ); curl_setopt( $ch ,CURLOPT_RETURNTRANSFER,0); curl_setopt( $ch ,CURLOPT_FOLLOWLOCATION, 1 ); curl_setopt( $ch ,CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3' ); curl_exec( $ch ); curl_close( $ch ); ?>
  2. Copy Source | Copy HTML <?php $offset = isset ( $_REQUEST [ 'offset' ]) ? (int) $_REQUEST [ 'offset' ] : 0; $size = isset ( $_REQUEST [ 'size' ]) ? (int) $_REQUEST [ 'size' ] : false ; $name = isset ( $_REQUEST [ 'name' ]) ? urlencode( $_REQUEST [ 'name' ]) : 'download.bin' ; if ( empty ( $size )) die ; // link to archive file $url = 'http://archive_file_url' ; @set_time_limit(0); $range_size = $size ; $range_offset = $offset ; if ( isset ( $_SERVER [ 'HTTP_RANGE' ])) { if (preg_match( '/^bytes=(\d+)\-$/' , $_SERVER [ 'HTTP_RANGE' ], $m )) { $range_offset += $m [ 1 ]; $range_size -= $m [ 1 ]; } elseif (preg_match( '/^bytes=(\d+)\-(\d+)$/' , $_SERVER [ 'HTTP_RANGE' ], $m )) { $range_offset += $m [ 1 ]; $range_size = $m [ 2 ]- $m [ 1 ]+ 1 ; } else { // TODO (aig): support other ranges if needed die (); } header( 'HTTP/1.1 206 Partial Content' ); } else { header( 'HTTP/1.1 200 Ok' ); } $range = ( $range_offset ). "-" .( $range_offset + $range_size - 1 ); header( "Content-Type: application/octet-stream" ); header( "Accept-Ranges: bytes" ); header( "Content-Length: $range_size" ); header( 'Content-Disposition: attachment; filename="' . $name . '";' ); $ch = curl_init(); curl_setopt( $ch ,CURLOPT_URL, $url ); curl_setopt( $ch ,CURLOPT_RANGE, $range ); curl_setopt( $ch ,CURLOPT_RETURNTRANSFER,0); curl_setopt( $ch ,CURLOPT_FOLLOWLOCATION, 1 ); curl_setopt( $ch ,CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3' ); curl_exec( $ch ); curl_close( $ch ); ?>
  3. Copy Source | Copy HTML <?php $offset = isset ( $_REQUEST [ 'offset' ]) ? (int) $_REQUEST [ 'offset' ] : 0; $size = isset ( $_REQUEST [ 'size' ]) ? (int) $_REQUEST [ 'size' ] : false ; $name = isset ( $_REQUEST [ 'name' ]) ? urlencode( $_REQUEST [ 'name' ]) : 'download.bin' ; if ( empty ( $size )) die ; // link to archive file $url = 'http://archive_file_url' ; @set_time_limit(0); $range_size = $size ; $range_offset = $offset ; if ( isset ( $_SERVER [ 'HTTP_RANGE' ])) { if (preg_match( '/^bytes=(\d+)\-$/' , $_SERVER [ 'HTTP_RANGE' ], $m )) { $range_offset += $m [ 1 ]; $range_size -= $m [ 1 ]; } elseif (preg_match( '/^bytes=(\d+)\-(\d+)$/' , $_SERVER [ 'HTTP_RANGE' ], $m )) { $range_offset += $m [ 1 ]; $range_size = $m [ 2 ]- $m [ 1 ]+ 1 ; } else { // TODO (aig): support other ranges if needed die (); } header( 'HTTP/1.1 206 Partial Content' ); } else { header( 'HTTP/1.1 200 Ok' ); } $range = ( $range_offset ). "-" .( $range_offset + $range_size - 1 ); header( "Content-Type: application/octet-stream" ); header( "Accept-Ranges: bytes" ); header( "Content-Length: $range_size" ); header( 'Content-Disposition: attachment; filename="' . $name . '";' ); $ch = curl_init(); curl_setopt( $ch ,CURLOPT_URL, $url ); curl_setopt( $ch ,CURLOPT_RANGE, $range ); curl_setopt( $ch ,CURLOPT_RETURNTRANSFER,0); curl_setopt( $ch ,CURLOPT_FOLLOWLOCATION, 1 ); curl_setopt( $ch ,CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3' ); curl_exec( $ch ); curl_close( $ch ); ?>
  4. Copy Source | Copy HTML <?php $offset = isset ( $_REQUEST [ 'offset' ]) ? (int) $_REQUEST [ 'offset' ] : 0; $size = isset ( $_REQUEST [ 'size' ]) ? (int) $_REQUEST [ 'size' ] : false ; $name = isset ( $_REQUEST [ 'name' ]) ? urlencode( $_REQUEST [ 'name' ]) : 'download.bin' ; if ( empty ( $size )) die ; // link to archive file $url = 'http://archive_file_url' ; @set_time_limit(0); $range_size = $size ; $range_offset = $offset ; if ( isset ( $_SERVER [ 'HTTP_RANGE' ])) { if (preg_match( '/^bytes=(\d+)\-$/' , $_SERVER [ 'HTTP_RANGE' ], $m )) { $range_offset += $m [ 1 ]; $range_size -= $m [ 1 ]; } elseif (preg_match( '/^bytes=(\d+)\-(\d+)$/' , $_SERVER [ 'HTTP_RANGE' ], $m )) { $range_offset += $m [ 1 ]; $range_size = $m [ 2 ]- $m [ 1 ]+ 1 ; } else { // TODO (aig): support other ranges if needed die (); } header( 'HTTP/1.1 206 Partial Content' ); } else { header( 'HTTP/1.1 200 Ok' ); } $range = ( $range_offset ). "-" .( $range_offset + $range_size - 1 ); header( "Content-Type: application/octet-stream" ); header( "Accept-Ranges: bytes" ); header( "Content-Length: $range_size" ); header( 'Content-Disposition: attachment; filename="' . $name . '";' ); $ch = curl_init(); curl_setopt( $ch ,CURLOPT_URL, $url ); curl_setopt( $ch ,CURLOPT_RANGE, $range ); curl_setopt( $ch ,CURLOPT_RETURNTRANSFER,0); curl_setopt( $ch ,CURLOPT_FOLLOWLOCATION, 1 ); curl_setopt( $ch ,CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3' ); curl_exec( $ch ); curl_close( $ch ); ?>
  5. Copy Source | Copy HTML <?php $offset = isset ( $_REQUEST [ 'offset' ]) ? (int) $_REQUEST [ 'offset' ] : 0; $size = isset ( $_REQUEST [ 'size' ]) ? (int) $_REQUEST [ 'size' ] : false ; $name = isset ( $_REQUEST [ 'name' ]) ? urlencode( $_REQUEST [ 'name' ]) : 'download.bin' ; if ( empty ( $size )) die ; // link to archive file $url = 'http://archive_file_url' ; @set_time_limit(0); $range_size = $size ; $range_offset = $offset ; if ( isset ( $_SERVER [ 'HTTP_RANGE' ])) { if (preg_match( '/^bytes=(\d+)\-$/' , $_SERVER [ 'HTTP_RANGE' ], $m )) { $range_offset += $m [ 1 ]; $range_size -= $m [ 1 ]; } elseif (preg_match( '/^bytes=(\d+)\-(\d+)$/' , $_SERVER [ 'HTTP_RANGE' ], $m )) { $range_offset += $m [ 1 ]; $range_size = $m [ 2 ]- $m [ 1 ]+ 1 ; } else { // TODO (aig): support other ranges if needed die (); } header( 'HTTP/1.1 206 Partial Content' ); } else { header( 'HTTP/1.1 200 Ok' ); } $range = ( $range_offset ). "-" .( $range_offset + $range_size - 1 ); header( "Content-Type: application/octet-stream" ); header( "Accept-Ranges: bytes" ); header( "Content-Length: $range_size" ); header( 'Content-Disposition: attachment; filename="' . $name . '";' ); $ch = curl_init(); curl_setopt( $ch ,CURLOPT_URL, $url ); curl_setopt( $ch ,CURLOPT_RANGE, $range ); curl_setopt( $ch ,CURLOPT_RETURNTRANSFER,0); curl_setopt( $ch ,CURLOPT_FOLLOWLOCATION, 1 ); curl_setopt( $ch ,CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3' ); curl_exec( $ch ); curl_close( $ch ); ?>
  6. Copy Source | Copy HTML <?php $offset = isset ( $_REQUEST [ 'offset' ]) ? (int) $_REQUEST [ 'offset' ] : 0; $size = isset ( $_REQUEST [ 'size' ]) ? (int) $_REQUEST [ 'size' ] : false ; $name = isset ( $_REQUEST [ 'name' ]) ? urlencode( $_REQUEST [ 'name' ]) : 'download.bin' ; if ( empty ( $size )) die ; // link to archive file $url = 'http://archive_file_url' ; @set_time_limit(0); $range_size = $size ; $range_offset = $offset ; if ( isset ( $_SERVER [ 'HTTP_RANGE' ])) { if (preg_match( '/^bytes=(\d+)\-$/' , $_SERVER [ 'HTTP_RANGE' ], $m )) { $range_offset += $m [ 1 ]; $range_size -= $m [ 1 ]; } elseif (preg_match( '/^bytes=(\d+)\-(\d+)$/' , $_SERVER [ 'HTTP_RANGE' ], $m )) { $range_offset += $m [ 1 ]; $range_size = $m [ 2 ]- $m [ 1 ]+ 1 ; } else { // TODO (aig): support other ranges if needed die (); } header( 'HTTP/1.1 206 Partial Content' ); } else { header( 'HTTP/1.1 200 Ok' ); } $range = ( $range_offset ). "-" .( $range_offset + $range_size - 1 ); header( "Content-Type: application/octet-stream" ); header( "Accept-Ranges: bytes" ); header( "Content-Length: $range_size" ); header( 'Content-Disposition: attachment; filename="' . $name . '";' ); $ch = curl_init(); curl_setopt( $ch ,CURLOPT_URL, $url ); curl_setopt( $ch ,CURLOPT_RANGE, $range ); curl_setopt( $ch ,CURLOPT_RETURNTRANSFER,0); curl_setopt( $ch ,CURLOPT_FOLLOWLOCATION, 1 ); curl_setopt( $ch ,CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3' ); curl_exec( $ch ); curl_close( $ch ); ?>
  7. Copy Source | Copy HTML <?php $offset = isset ( $_REQUEST [ 'offset' ]) ? (int) $_REQUEST [ 'offset' ] : 0; $size = isset ( $_REQUEST [ 'size' ]) ? (int) $_REQUEST [ 'size' ] : false ; $name = isset ( $_REQUEST [ 'name' ]) ? urlencode( $_REQUEST [ 'name' ]) : 'download.bin' ; if ( empty ( $size )) die ; // link to archive file $url = 'http://archive_file_url' ; @set_time_limit(0); $range_size = $size ; $range_offset = $offset ; if ( isset ( $_SERVER [ 'HTTP_RANGE' ])) { if (preg_match( '/^bytes=(\d+)\-$/' , $_SERVER [ 'HTTP_RANGE' ], $m )) { $range_offset += $m [ 1 ]; $range_size -= $m [ 1 ]; } elseif (preg_match( '/^bytes=(\d+)\-(\d+)$/' , $_SERVER [ 'HTTP_RANGE' ], $m )) { $range_offset += $m [ 1 ]; $range_size = $m [ 2 ]- $m [ 1 ]+ 1 ; } else { // TODO (aig): support other ranges if needed die (); } header( 'HTTP/1.1 206 Partial Content' ); } else { header( 'HTTP/1.1 200 Ok' ); } $range = ( $range_offset ). "-" .( $range_offset + $range_size - 1 ); header( "Content-Type: application/octet-stream" ); header( "Accept-Ranges: bytes" ); header( "Content-Length: $range_size" ); header( 'Content-Disposition: attachment; filename="' . $name . '";' ); $ch = curl_init(); curl_setopt( $ch ,CURLOPT_URL, $url ); curl_setopt( $ch ,CURLOPT_RANGE, $range ); curl_setopt( $ch ,CURLOPT_RETURNTRANSFER,0); curl_setopt( $ch ,CURLOPT_FOLLOWLOCATION, 1 ); curl_setopt( $ch ,CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3' ); curl_exec( $ch ); curl_close( $ch ); ?>
  8. Copy Source | Copy HTML <?php $offset = isset ( $_REQUEST [ 'offset' ]) ? (int) $_REQUEST [ 'offset' ] : 0; $size = isset ( $_REQUEST [ 'size' ]) ? (int) $_REQUEST [ 'size' ] : false ; $name = isset ( $_REQUEST [ 'name' ]) ? urlencode( $_REQUEST [ 'name' ]) : 'download.bin' ; if ( empty ( $size )) die ; // link to archive file $url = 'http://archive_file_url' ; @set_time_limit(0); $range_size = $size ; $range_offset = $offset ; if ( isset ( $_SERVER [ 'HTTP_RANGE' ])) { if (preg_match( '/^bytes=(\d+)\-$/' , $_SERVER [ 'HTTP_RANGE' ], $m )) { $range_offset += $m [ 1 ]; $range_size -= $m [ 1 ]; } elseif (preg_match( '/^bytes=(\d+)\-(\d+)$/' , $_SERVER [ 'HTTP_RANGE' ], $m )) { $range_offset += $m [ 1 ]; $range_size = $m [ 2 ]- $m [ 1 ]+ 1 ; } else { // TODO (aig): support other ranges if needed die (); } header( 'HTTP/1.1 206 Partial Content' ); } else { header( 'HTTP/1.1 200 Ok' ); } $range = ( $range_offset ). "-" .( $range_offset + $range_size - 1 ); header( "Content-Type: application/octet-stream" ); header( "Accept-Ranges: bytes" ); header( "Content-Length: $range_size" ); header( 'Content-Disposition: attachment; filename="' . $name . '";' ); $ch = curl_init(); curl_setopt( $ch ,CURLOPT_URL, $url ); curl_setopt( $ch ,CURLOPT_RANGE, $range ); curl_setopt( $ch ,CURLOPT_RETURNTRANSFER,0); curl_setopt( $ch ,CURLOPT_FOLLOWLOCATION, 1 ); curl_setopt( $ch ,CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3' ); curl_exec( $ch ); curl_close( $ch ); ?>
  9. Copy Source | Copy HTML <?php $offset = isset ( $_REQUEST [ 'offset' ]) ? (int) $_REQUEST [ 'offset' ] : 0; $size = isset ( $_REQUEST [ 'size' ]) ? (int) $_REQUEST [ 'size' ] : false ; $name = isset ( $_REQUEST [ 'name' ]) ? urlencode( $_REQUEST [ 'name' ]) : 'download.bin' ; if ( empty ( $size )) die ; // link to archive file $url = 'http://archive_file_url' ; @set_time_limit(0); $range_size = $size ; $range_offset = $offset ; if ( isset ( $_SERVER [ 'HTTP_RANGE' ])) { if (preg_match( '/^bytes=(\d+)\-$/' , $_SERVER [ 'HTTP_RANGE' ], $m )) { $range_offset += $m [ 1 ]; $range_size -= $m [ 1 ]; } elseif (preg_match( '/^bytes=(\d+)\-(\d+)$/' , $_SERVER [ 'HTTP_RANGE' ], $m )) { $range_offset += $m [ 1 ]; $range_size = $m [ 2 ]- $m [ 1 ]+ 1 ; } else { // TODO (aig): support other ranges if needed die (); } header( 'HTTP/1.1 206 Partial Content' ); } else { header( 'HTTP/1.1 200 Ok' ); } $range = ( $range_offset ). "-" .( $range_offset + $range_size - 1 ); header( "Content-Type: application/octet-stream" ); header( "Accept-Ranges: bytes" ); header( "Content-Length: $range_size" ); header( 'Content-Disposition: attachment; filename="' . $name . '";' ); $ch = curl_init(); curl_setopt( $ch ,CURLOPT_URL, $url ); curl_setopt( $ch ,CURLOPT_RANGE, $range ); curl_setopt( $ch ,CURLOPT_RETURNTRANSFER,0); curl_setopt( $ch ,CURLOPT_FOLLOWLOCATION, 1 ); curl_setopt( $ch ,CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3' ); curl_exec( $ch ); curl_close( $ch ); ?>
  10. Copy Source | Copy HTML <?php $offset = isset ( $_REQUEST [ 'offset' ]) ? (int) $_REQUEST [ 'offset' ] : 0; $size = isset ( $_REQUEST [ 'size' ]) ? (int) $_REQUEST [ 'size' ] : false ; $name = isset ( $_REQUEST [ 'name' ]) ? urlencode( $_REQUEST [ 'name' ]) : 'download.bin' ; if ( empty ( $size )) die ; // link to archive file $url = 'http://archive_file_url' ; @set_time_limit(0); $range_size = $size ; $range_offset = $offset ; if ( isset ( $_SERVER [ 'HTTP_RANGE' ])) { if (preg_match( '/^bytes=(\d+)\-$/' , $_SERVER [ 'HTTP_RANGE' ], $m )) { $range_offset += $m [ 1 ]; $range_size -= $m [ 1 ]; } elseif (preg_match( '/^bytes=(\d+)\-(\d+)$/' , $_SERVER [ 'HTTP_RANGE' ], $m )) { $range_offset += $m [ 1 ]; $range_size = $m [ 2 ]- $m [ 1 ]+ 1 ; } else { // TODO (aig): support other ranges if needed die (); } header( 'HTTP/1.1 206 Partial Content' ); } else { header( 'HTTP/1.1 200 Ok' ); } $range = ( $range_offset ). "-" .( $range_offset + $range_size - 1 ); header( "Content-Type: application/octet-stream" ); header( "Accept-Ranges: bytes" ); header( "Content-Length: $range_size" ); header( 'Content-Disposition: attachment; filename="' . $name . '";' ); $ch = curl_init(); curl_setopt( $ch ,CURLOPT_URL, $url ); curl_setopt( $ch ,CURLOPT_RANGE, $range ); curl_setopt( $ch ,CURLOPT_RETURNTRANSFER,0); curl_setopt( $ch ,CURLOPT_FOLLOWLOCATION, 1 ); curl_setopt( $ch ,CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3' ); curl_exec( $ch ); curl_close( $ch ); ?>
  11. Copy Source | Copy HTML <?php $offset = isset ( $_REQUEST [ 'offset' ]) ? (int) $_REQUEST [ 'offset' ] : 0; $size = isset ( $_REQUEST [ 'size' ]) ? (int) $_REQUEST [ 'size' ] : false ; $name = isset ( $_REQUEST [ 'name' ]) ? urlencode( $_REQUEST [ 'name' ]) : 'download.bin' ; if ( empty ( $size )) die ; // link to archive file $url = 'http://archive_file_url' ; @set_time_limit(0); $range_size = $size ; $range_offset = $offset ; if ( isset ( $_SERVER [ 'HTTP_RANGE' ])) { if (preg_match( '/^bytes=(\d+)\-$/' , $_SERVER [ 'HTTP_RANGE' ], $m )) { $range_offset += $m [ 1 ]; $range_size -= $m [ 1 ]; } elseif (preg_match( '/^bytes=(\d+)\-(\d+)$/' , $_SERVER [ 'HTTP_RANGE' ], $m )) { $range_offset += $m [ 1 ]; $range_size = $m [ 2 ]- $m [ 1 ]+ 1 ; } else { // TODO (aig): support other ranges if needed die (); } header( 'HTTP/1.1 206 Partial Content' ); } else { header( 'HTTP/1.1 200 Ok' ); } $range = ( $range_offset ). "-" .( $range_offset + $range_size - 1 ); header( "Content-Type: application/octet-stream" ); header( "Accept-Ranges: bytes" ); header( "Content-Length: $range_size" ); header( 'Content-Disposition: attachment; filename="' . $name . '";' ); $ch = curl_init(); curl_setopt( $ch ,CURLOPT_URL, $url ); curl_setopt( $ch ,CURLOPT_RANGE, $range ); curl_setopt( $ch ,CURLOPT_RETURNTRANSFER,0); curl_setopt( $ch ,CURLOPT_FOLLOWLOCATION, 1 ); curl_setopt( $ch ,CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3' ); curl_exec( $ch ); curl_close( $ch ); ?>
  12. Copy Source | Copy HTML <?php $offset = isset ( $_REQUEST [ 'offset' ]) ? (int) $_REQUEST [ 'offset' ] : 0; $size = isset ( $_REQUEST [ 'size' ]) ? (int) $_REQUEST [ 'size' ] : false ; $name = isset ( $_REQUEST [ 'name' ]) ? urlencode( $_REQUEST [ 'name' ]) : 'download.bin' ; if ( empty ( $size )) die ; // link to archive file $url = 'http://archive_file_url' ; @set_time_limit(0); $range_size = $size ; $range_offset = $offset ; if ( isset ( $_SERVER [ 'HTTP_RANGE' ])) { if (preg_match( '/^bytes=(\d+)\-$/' , $_SERVER [ 'HTTP_RANGE' ], $m )) { $range_offset += $m [ 1 ]; $range_size -= $m [ 1 ]; } elseif (preg_match( '/^bytes=(\d+)\-(\d+)$/' , $_SERVER [ 'HTTP_RANGE' ], $m )) { $range_offset += $m [ 1 ]; $range_size = $m [ 2 ]- $m [ 1 ]+ 1 ; } else { // TODO (aig): support other ranges if needed die (); } header( 'HTTP/1.1 206 Partial Content' ); } else { header( 'HTTP/1.1 200 Ok' ); } $range = ( $range_offset ). "-" .( $range_offset + $range_size - 1 ); header( "Content-Type: application/octet-stream" ); header( "Accept-Ranges: bytes" ); header( "Content-Length: $range_size" ); header( 'Content-Disposition: attachment; filename="' . $name . '";' ); $ch = curl_init(); curl_setopt( $ch ,CURLOPT_URL, $url ); curl_setopt( $ch ,CURLOPT_RANGE, $range ); curl_setopt( $ch ,CURLOPT_RETURNTRANSFER,0); curl_setopt( $ch ,CURLOPT_FOLLOWLOCATION, 1 ); curl_setopt( $ch ,CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3' ); curl_exec( $ch ); curl_close( $ch ); ?>
  13. Copy Source | Copy HTML <?php $offset = isset ( $_REQUEST [ 'offset' ]) ? (int) $_REQUEST [ 'offset' ] : 0; $size = isset ( $_REQUEST [ 'size' ]) ? (int) $_REQUEST [ 'size' ] : false ; $name = isset ( $_REQUEST [ 'name' ]) ? urlencode( $_REQUEST [ 'name' ]) : 'download.bin' ; if ( empty ( $size )) die ; // link to archive file $url = 'http://archive_file_url' ; @set_time_limit(0); $range_size = $size ; $range_offset = $offset ; if ( isset ( $_SERVER [ 'HTTP_RANGE' ])) { if (preg_match( '/^bytes=(\d+)\-$/' , $_SERVER [ 'HTTP_RANGE' ], $m )) { $range_offset += $m [ 1 ]; $range_size -= $m [ 1 ]; } elseif (preg_match( '/^bytes=(\d+)\-(\d+)$/' , $_SERVER [ 'HTTP_RANGE' ], $m )) { $range_offset += $m [ 1 ]; $range_size = $m [ 2 ]- $m [ 1 ]+ 1 ; } else { // TODO (aig): support other ranges if needed die (); } header( 'HTTP/1.1 206 Partial Content' ); } else { header( 'HTTP/1.1 200 Ok' ); } $range = ( $range_offset ). "-" .( $range_offset + $range_size - 1 ); header( "Content-Type: application/octet-stream" ); header( "Accept-Ranges: bytes" ); header( "Content-Length: $range_size" ); header( 'Content-Disposition: attachment; filename="' . $name . '";' ); $ch = curl_init(); curl_setopt( $ch ,CURLOPT_URL, $url ); curl_setopt( $ch ,CURLOPT_RANGE, $range ); curl_setopt( $ch ,CURLOPT_RETURNTRANSFER,0); curl_setopt( $ch ,CURLOPT_FOLLOWLOCATION, 1 ); curl_setopt( $ch ,CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3' ); curl_exec( $ch ); curl_close( $ch ); ?>
  14. Copy Source | Copy HTML <?php $offset = isset ( $_REQUEST [ 'offset' ]) ? (int) $_REQUEST [ 'offset' ] : 0; $size = isset ( $_REQUEST [ 'size' ]) ? (int) $_REQUEST [ 'size' ] : false ; $name = isset ( $_REQUEST [ 'name' ]) ? urlencode( $_REQUEST [ 'name' ]) : 'download.bin' ; if ( empty ( $size )) die ; // link to archive file $url = 'http://archive_file_url' ; @set_time_limit(0); $range_size = $size ; $range_offset = $offset ; if ( isset ( $_SERVER [ 'HTTP_RANGE' ])) { if (preg_match( '/^bytes=(\d+)\-$/' , $_SERVER [ 'HTTP_RANGE' ], $m )) { $range_offset += $m [ 1 ]; $range_size -= $m [ 1 ]; } elseif (preg_match( '/^bytes=(\d+)\-(\d+)$/' , $_SERVER [ 'HTTP_RANGE' ], $m )) { $range_offset += $m [ 1 ]; $range_size = $m [ 2 ]- $m [ 1 ]+ 1 ; } else { // TODO (aig): support other ranges if needed die (); } header( 'HTTP/1.1 206 Partial Content' ); } else { header( 'HTTP/1.1 200 Ok' ); } $range = ( $range_offset ). "-" .( $range_offset + $range_size - 1 ); header( "Content-Type: application/octet-stream" ); header( "Accept-Ranges: bytes" ); header( "Content-Length: $range_size" ); header( 'Content-Disposition: attachment; filename="' . $name . '";' ); $ch = curl_init(); curl_setopt( $ch ,CURLOPT_URL, $url ); curl_setopt( $ch ,CURLOPT_RANGE, $range ); curl_setopt( $ch ,CURLOPT_RETURNTRANSFER,0); curl_setopt( $ch ,CURLOPT_FOLLOWLOCATION, 1 ); curl_setopt( $ch ,CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3' ); curl_exec( $ch ); curl_close( $ch ); ?>
  15. Copy Source | Copy HTML <?php $offset = isset ( $_REQUEST [ 'offset' ]) ? (int) $_REQUEST [ 'offset' ] : 0; $size = isset ( $_REQUEST [ 'size' ]) ? (int) $_REQUEST [ 'size' ] : false ; $name = isset ( $_REQUEST [ 'name' ]) ? urlencode( $_REQUEST [ 'name' ]) : 'download.bin' ; if ( empty ( $size )) die ; // link to archive file $url = 'http://archive_file_url' ; @set_time_limit(0); $range_size = $size ; $range_offset = $offset ; if ( isset ( $_SERVER [ 'HTTP_RANGE' ])) { if (preg_match( '/^bytes=(\d+)\-$/' , $_SERVER [ 'HTTP_RANGE' ], $m )) { $range_offset += $m [ 1 ]; $range_size -= $m [ 1 ]; } elseif (preg_match( '/^bytes=(\d+)\-(\d+)$/' , $_SERVER [ 'HTTP_RANGE' ], $m )) { $range_offset += $m [ 1 ]; $range_size = $m [ 2 ]- $m [ 1 ]+ 1 ; } else { // TODO (aig): support other ranges if needed die (); } header( 'HTTP/1.1 206 Partial Content' ); } else { header( 'HTTP/1.1 200 Ok' ); } $range = ( $range_offset ). "-" .( $range_offset + $range_size - 1 ); header( "Content-Type: application/octet-stream" ); header( "Accept-Ranges: bytes" ); header( "Content-Length: $range_size" ); header( 'Content-Disposition: attachment; filename="' . $name . '";' ); $ch = curl_init(); curl_setopt( $ch ,CURLOPT_URL, $url ); curl_setopt( $ch ,CURLOPT_RANGE, $range ); curl_setopt( $ch ,CURLOPT_RETURNTRANSFER,0); curl_setopt( $ch ,CURLOPT_FOLLOWLOCATION, 1 ); curl_setopt( $ch ,CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3' ); curl_exec( $ch ); curl_close( $ch ); ?>
  16. Copy Source | Copy HTML <?php $offset = isset ( $_REQUEST [ 'offset' ]) ? (int) $_REQUEST [ 'offset' ] : 0; $size = isset ( $_REQUEST [ 'size' ]) ? (int) $_REQUEST [ 'size' ] : false ; $name = isset ( $_REQUEST [ 'name' ]) ? urlencode( $_REQUEST [ 'name' ]) : 'download.bin' ; if ( empty ( $size )) die ; // link to archive file $url = 'http://archive_file_url' ; @set_time_limit(0); $range_size = $size ; $range_offset = $offset ; if ( isset ( $_SERVER [ 'HTTP_RANGE' ])) { if (preg_match( '/^bytes=(\d+)\-$/' , $_SERVER [ 'HTTP_RANGE' ], $m )) { $range_offset += $m [ 1 ]; $range_size -= $m [ 1 ]; } elseif (preg_match( '/^bytes=(\d+)\-(\d+)$/' , $_SERVER [ 'HTTP_RANGE' ], $m )) { $range_offset += $m [ 1 ]; $range_size = $m [ 2 ]- $m [ 1 ]+ 1 ; } else { // TODO (aig): support other ranges if needed die (); } header( 'HTTP/1.1 206 Partial Content' ); } else { header( 'HTTP/1.1 200 Ok' ); } $range = ( $range_offset ). "-" .( $range_offset + $range_size - 1 ); header( "Content-Type: application/octet-stream" ); header( "Accept-Ranges: bytes" ); header( "Content-Length: $range_size" ); header( 'Content-Disposition: attachment; filename="' . $name . '";' ); $ch = curl_init(); curl_setopt( $ch ,CURLOPT_URL, $url ); curl_setopt( $ch ,CURLOPT_RANGE, $range ); curl_setopt( $ch ,CURLOPT_RETURNTRANSFER,0); curl_setopt( $ch ,CURLOPT_FOLLOWLOCATION, 1 ); curl_setopt( $ch ,CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3' ); curl_exec( $ch ); curl_close( $ch ); ?>
  17. Copy Source | Copy HTML <?php $offset = isset ( $_REQUEST [ 'offset' ]) ? (int) $_REQUEST [ 'offset' ] : 0; $size = isset ( $_REQUEST [ 'size' ]) ? (int) $_REQUEST [ 'size' ] : false ; $name = isset ( $_REQUEST [ 'name' ]) ? urlencode( $_REQUEST [ 'name' ]) : 'download.bin' ; if ( empty ( $size )) die ; // link to archive file $url = 'http://archive_file_url' ; @set_time_limit(0); $range_size = $size ; $range_offset = $offset ; if ( isset ( $_SERVER [ 'HTTP_RANGE' ])) { if (preg_match( '/^bytes=(\d+)\-$/' , $_SERVER [ 'HTTP_RANGE' ], $m )) { $range_offset += $m [ 1 ]; $range_size -= $m [ 1 ]; } elseif (preg_match( '/^bytes=(\d+)\-(\d+)$/' , $_SERVER [ 'HTTP_RANGE' ], $m )) { $range_offset += $m [ 1 ]; $range_size = $m [ 2 ]- $m [ 1 ]+ 1 ; } else { // TODO (aig): support other ranges if needed die (); } header( 'HTTP/1.1 206 Partial Content' ); } else { header( 'HTTP/1.1 200 Ok' ); } $range = ( $range_offset ). "-" .( $range_offset + $range_size - 1 ); header( "Content-Type: application/octet-stream" ); header( "Accept-Ranges: bytes" ); header( "Content-Length: $range_size" ); header( 'Content-Disposition: attachment; filename="' . $name . '";' ); $ch = curl_init(); curl_setopt( $ch ,CURLOPT_URL, $url ); curl_setopt( $ch ,CURLOPT_RANGE, $range ); curl_setopt( $ch ,CURLOPT_RETURNTRANSFER,0); curl_setopt( $ch ,CURLOPT_FOLLOWLOCATION, 1 ); curl_setopt( $ch ,CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3' ); curl_exec( $ch ); curl_close( $ch ); ?>
  18. Copy Source | Copy HTML <?php $offset = isset ( $_REQUEST [ 'offset' ]) ? (int) $_REQUEST [ 'offset' ] : 0; $size = isset ( $_REQUEST [ 'size' ]) ? (int) $_REQUEST [ 'size' ] : false ; $name = isset ( $_REQUEST [ 'name' ]) ? urlencode( $_REQUEST [ 'name' ]) : 'download.bin' ; if ( empty ( $size )) die ; // link to archive file $url = 'http://archive_file_url' ; @set_time_limit(0); $range_size = $size ; $range_offset = $offset ; if ( isset ( $_SERVER [ 'HTTP_RANGE' ])) { if (preg_match( '/^bytes=(\d+)\-$/' , $_SERVER [ 'HTTP_RANGE' ], $m )) { $range_offset += $m [ 1 ]; $range_size -= $m [ 1 ]; } elseif (preg_match( '/^bytes=(\d+)\-(\d+)$/' , $_SERVER [ 'HTTP_RANGE' ], $m )) { $range_offset += $m [ 1 ]; $range_size = $m [ 2 ]- $m [ 1 ]+ 1 ; } else { // TODO (aig): support other ranges if needed die (); } header( 'HTTP/1.1 206 Partial Content' ); } else { header( 'HTTP/1.1 200 Ok' ); } $range = ( $range_offset ). "-" .( $range_offset + $range_size - 1 ); header( "Content-Type: application/octet-stream" ); header( "Accept-Ranges: bytes" ); header( "Content-Length: $range_size" ); header( 'Content-Disposition: attachment; filename="' . $name . '";' ); $ch = curl_init(); curl_setopt( $ch ,CURLOPT_URL, $url ); curl_setopt( $ch ,CURLOPT_RANGE, $range ); curl_setopt( $ch ,CURLOPT_RETURNTRANSFER,0); curl_setopt( $ch ,CURLOPT_FOLLOWLOCATION, 1 ); curl_setopt( $ch ,CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3' ); curl_exec( $ch ); curl_close( $ch ); ?>
  19. Copy Source | Copy HTML <?php $offset = isset ( $_REQUEST [ 'offset' ]) ? (int) $_REQUEST [ 'offset' ] : 0; $size = isset ( $_REQUEST [ 'size' ]) ? (int) $_REQUEST [ 'size' ] : false ; $name = isset ( $_REQUEST [ 'name' ]) ? urlencode( $_REQUEST [ 'name' ]) : 'download.bin' ; if ( empty ( $size )) die ; // link to archive file $url = 'http://archive_file_url' ; @set_time_limit(0); $range_size = $size ; $range_offset = $offset ; if ( isset ( $_SERVER [ 'HTTP_RANGE' ])) { if (preg_match( '/^bytes=(\d+)\-$/' , $_SERVER [ 'HTTP_RANGE' ], $m )) { $range_offset += $m [ 1 ]; $range_size -= $m [ 1 ]; } elseif (preg_match( '/^bytes=(\d+)\-(\d+)$/' , $_SERVER [ 'HTTP_RANGE' ], $m )) { $range_offset += $m [ 1 ]; $range_size = $m [ 2 ]- $m [ 1 ]+ 1 ; } else { // TODO (aig): support other ranges if needed die (); } header( 'HTTP/1.1 206 Partial Content' ); } else { header( 'HTTP/1.1 200 Ok' ); } $range = ( $range_offset ). "-" .( $range_offset + $range_size - 1 ); header( "Content-Type: application/octet-stream" ); header( "Accept-Ranges: bytes" ); header( "Content-Length: $range_size" ); header( 'Content-Disposition: attachment; filename="' . $name . '";' ); $ch = curl_init(); curl_setopt( $ch ,CURLOPT_URL, $url ); curl_setopt( $ch ,CURLOPT_RANGE, $range ); curl_setopt( $ch ,CURLOPT_RETURNTRANSFER,0); curl_setopt( $ch ,CURLOPT_FOLLOWLOCATION, 1 ); curl_setopt( $ch ,CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3' ); curl_exec( $ch ); curl_close( $ch ); ?>
  20. Copy Source | Copy HTML <?php $offset = isset ( $_REQUEST [ 'offset' ]) ? (int) $_REQUEST [ 'offset' ] : 0; $size = isset ( $_REQUEST [ 'size' ]) ? (int) $_REQUEST [ 'size' ] : false ; $name = isset ( $_REQUEST [ 'name' ]) ? urlencode( $_REQUEST [ 'name' ]) : 'download.bin' ; if ( empty ( $size )) die ; // link to archive file $url = 'http://archive_file_url' ; @set_time_limit(0); $range_size = $size ; $range_offset = $offset ; if ( isset ( $_SERVER [ 'HTTP_RANGE' ])) { if (preg_match( '/^bytes=(\d+)\-$/' , $_SERVER [ 'HTTP_RANGE' ], $m )) { $range_offset += $m [ 1 ]; $range_size -= $m [ 1 ]; } elseif (preg_match( '/^bytes=(\d+)\-(\d+)$/' , $_SERVER [ 'HTTP_RANGE' ], $m )) { $range_offset += $m [ 1 ]; $range_size = $m [ 2 ]- $m [ 1 ]+ 1 ; } else { // TODO (aig): support other ranges if needed die (); } header( 'HTTP/1.1 206 Partial Content' ); } else { header( 'HTTP/1.1 200 Ok' ); } $range = ( $range_offset ). "-" .( $range_offset + $range_size - 1 ); header( "Content-Type: application/octet-stream" ); header( "Accept-Ranges: bytes" ); header( "Content-Length: $range_size" ); header( 'Content-Disposition: attachment; filename="' . $name . '";' ); $ch = curl_init(); curl_setopt( $ch ,CURLOPT_URL, $url ); curl_setopt( $ch ,CURLOPT_RANGE, $range ); curl_setopt( $ch ,CURLOPT_RETURNTRANSFER,0); curl_setopt( $ch ,CURLOPT_FOLLOWLOCATION, 1 ); curl_setopt( $ch ,CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3' ); curl_exec( $ch ); curl_close( $ch ); ?>
  21. Copy Source | Copy HTML <?php $offset = isset ( $_REQUEST [ 'offset' ]) ? (int) $_REQUEST [ 'offset' ] : 0; $size = isset ( $_REQUEST [ 'size' ]) ? (int) $_REQUEST [ 'size' ] : false ; $name = isset ( $_REQUEST [ 'name' ]) ? urlencode( $_REQUEST [ 'name' ]) : 'download.bin' ; if ( empty ( $size )) die ; // link to archive file $url = 'http://archive_file_url' ; @set_time_limit(0); $range_size = $size ; $range_offset = $offset ; if ( isset ( $_SERVER [ 'HTTP_RANGE' ])) { if (preg_match( '/^bytes=(\d+)\-$/' , $_SERVER [ 'HTTP_RANGE' ], $m )) { $range_offset += $m [ 1 ]; $range_size -= $m [ 1 ]; } elseif (preg_match( '/^bytes=(\d+)\-(\d+)$/' , $_SERVER [ 'HTTP_RANGE' ], $m )) { $range_offset += $m [ 1 ]; $range_size = $m [ 2 ]- $m [ 1 ]+ 1 ; } else { // TODO (aig): support other ranges if needed die (); } header( 'HTTP/1.1 206 Partial Content' ); } else { header( 'HTTP/1.1 200 Ok' ); } $range = ( $range_offset ). "-" .( $range_offset + $range_size - 1 ); header( "Content-Type: application/octet-stream" ); header( "Accept-Ranges: bytes" ); header( "Content-Length: $range_size" ); header( 'Content-Disposition: attachment; filename="' . $name . '";' ); $ch = curl_init(); curl_setopt( $ch ,CURLOPT_URL, $url ); curl_setopt( $ch ,CURLOPT_RANGE, $range ); curl_setopt( $ch ,CURLOPT_RETURNTRANSFER,0); curl_setopt( $ch ,CURLOPT_FOLLOWLOCATION, 1 ); curl_setopt( $ch ,CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3' ); curl_exec( $ch ); curl_close( $ch ); ?>
  22. Copy Source | Copy HTML <?php $offset = isset ( $_REQUEST [ 'offset' ]) ? (int) $_REQUEST [ 'offset' ] : 0; $size = isset ( $_REQUEST [ 'size' ]) ? (int) $_REQUEST [ 'size' ] : false ; $name = isset ( $_REQUEST [ 'name' ]) ? urlencode( $_REQUEST [ 'name' ]) : 'download.bin' ; if ( empty ( $size )) die ; // link to archive file $url = 'http://archive_file_url' ; @set_time_limit(0); $range_size = $size ; $range_offset = $offset ; if ( isset ( $_SERVER [ 'HTTP_RANGE' ])) { if (preg_match( '/^bytes=(\d+)\-$/' , $_SERVER [ 'HTTP_RANGE' ], $m )) { $range_offset += $m [ 1 ]; $range_size -= $m [ 1 ]; } elseif (preg_match( '/^bytes=(\d+)\-(\d+)$/' , $_SERVER [ 'HTTP_RANGE' ], $m )) { $range_offset += $m [ 1 ]; $range_size = $m [ 2 ]- $m [ 1 ]+ 1 ; } else { // TODO (aig): support other ranges if needed die (); } header( 'HTTP/1.1 206 Partial Content' ); } else { header( 'HTTP/1.1 200 Ok' ); } $range = ( $range_offset ). "-" .( $range_offset + $range_size - 1 ); header( "Content-Type: application/octet-stream" ); header( "Accept-Ranges: bytes" ); header( "Content-Length: $range_size" ); header( 'Content-Disposition: attachment; filename="' . $name . '";' ); $ch = curl_init(); curl_setopt( $ch ,CURLOPT_URL, $url ); curl_setopt( $ch ,CURLOPT_RANGE, $range ); curl_setopt( $ch ,CURLOPT_RETURNTRANSFER,0); curl_setopt( $ch ,CURLOPT_FOLLOWLOCATION, 1 ); curl_setopt( $ch ,CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3' ); curl_exec( $ch ); curl_close( $ch ); ?>
  23. Copy Source | Copy HTML <?php $offset = isset ( $_REQUEST [ 'offset' ]) ? (int) $_REQUEST [ 'offset' ] : 0; $size = isset ( $_REQUEST [ 'size' ]) ? (int) $_REQUEST [ 'size' ] : false ; $name = isset ( $_REQUEST [ 'name' ]) ? urlencode( $_REQUEST [ 'name' ]) : 'download.bin' ; if ( empty ( $size )) die ; // link to archive file $url = 'http://archive_file_url' ; @set_time_limit(0); $range_size = $size ; $range_offset = $offset ; if ( isset ( $_SERVER [ 'HTTP_RANGE' ])) { if (preg_match( '/^bytes=(\d+)\-$/' , $_SERVER [ 'HTTP_RANGE' ], $m )) { $range_offset += $m [ 1 ]; $range_size -= $m [ 1 ]; } elseif (preg_match( '/^bytes=(\d+)\-(\d+)$/' , $_SERVER [ 'HTTP_RANGE' ], $m )) { $range_offset += $m [ 1 ]; $range_size = $m [ 2 ]- $m [ 1 ]+ 1 ; } else { // TODO (aig): support other ranges if needed die (); } header( 'HTTP/1.1 206 Partial Content' ); } else { header( 'HTTP/1.1 200 Ok' ); } $range = ( $range_offset ). "-" .( $range_offset + $range_size - 1 ); header( "Content-Type: application/octet-stream" ); header( "Accept-Ranges: bytes" ); header( "Content-Length: $range_size" ); header( 'Content-Disposition: attachment; filename="' . $name . '";' ); $ch = curl_init(); curl_setopt( $ch ,CURLOPT_URL, $url ); curl_setopt( $ch ,CURLOPT_RANGE, $range ); curl_setopt( $ch ,CURLOPT_RETURNTRANSFER,0); curl_setopt( $ch ,CURLOPT_FOLLOWLOCATION, 1 ); curl_setopt( $ch ,CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3' ); curl_exec( $ch ); curl_close( $ch ); ?>
  24. Copy Source | Copy HTML <?php $offset = isset ( $_REQUEST [ 'offset' ]) ? (int) $_REQUEST [ 'offset' ] : 0; $size = isset ( $_REQUEST [ 'size' ]) ? (int) $_REQUEST [ 'size' ] : false ; $name = isset ( $_REQUEST [ 'name' ]) ? urlencode( $_REQUEST [ 'name' ]) : 'download.bin' ; if ( empty ( $size )) die ; // link to archive file $url = 'http://archive_file_url' ; @set_time_limit(0); $range_size = $size ; $range_offset = $offset ; if ( isset ( $_SERVER [ 'HTTP_RANGE' ])) { if (preg_match( '/^bytes=(\d+)\-$/' , $_SERVER [ 'HTTP_RANGE' ], $m )) { $range_offset += $m [ 1 ]; $range_size -= $m [ 1 ]; } elseif (preg_match( '/^bytes=(\d+)\-(\d+)$/' , $_SERVER [ 'HTTP_RANGE' ], $m )) { $range_offset += $m [ 1 ]; $range_size = $m [ 2 ]- $m [ 1 ]+ 1 ; } else { // TODO (aig): support other ranges if needed die (); } header( 'HTTP/1.1 206 Partial Content' ); } else { header( 'HTTP/1.1 200 Ok' ); } $range = ( $range_offset ). "-" .( $range_offset + $range_size - 1 ); header( "Content-Type: application/octet-stream" ); header( "Accept-Ranges: bytes" ); header( "Content-Length: $range_size" ); header( 'Content-Disposition: attachment; filename="' . $name . '";' ); $ch = curl_init(); curl_setopt( $ch ,CURLOPT_URL, $url ); curl_setopt( $ch ,CURLOPT_RANGE, $range ); curl_setopt( $ch ,CURLOPT_RETURNTRANSFER,0); curl_setopt( $ch ,CURLOPT_FOLLOWLOCATION, 1 ); curl_setopt( $ch ,CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3' ); curl_exec( $ch ); curl_close( $ch ); ?>
  25. Copy Source | Copy HTML <?php $offset = isset ( $_REQUEST [ 'offset' ]) ? (int) $_REQUEST [ 'offset' ] : 0; $size = isset ( $_REQUEST [ 'size' ]) ? (int) $_REQUEST [ 'size' ] : false ; $name = isset ( $_REQUEST [ 'name' ]) ? urlencode( $_REQUEST [ 'name' ]) : 'download.bin' ; if ( empty ( $size )) die ; // link to archive file $url = 'http://archive_file_url' ; @set_time_limit(0); $range_size = $size ; $range_offset = $offset ; if ( isset ( $_SERVER [ 'HTTP_RANGE' ])) { if (preg_match( '/^bytes=(\d+)\-$/' , $_SERVER [ 'HTTP_RANGE' ], $m )) { $range_offset += $m [ 1 ]; $range_size -= $m [ 1 ]; } elseif (preg_match( '/^bytes=(\d+)\-(\d+)$/' , $_SERVER [ 'HTTP_RANGE' ], $m )) { $range_offset += $m [ 1 ]; $range_size = $m [ 2 ]- $m [ 1 ]+ 1 ; } else { // TODO (aig): support other ranges if needed die (); } header( 'HTTP/1.1 206 Partial Content' ); } else { header( 'HTTP/1.1 200 Ok' ); } $range = ( $range_offset ). "-" .( $range_offset + $range_size - 1 ); header( "Content-Type: application/octet-stream" ); header( "Accept-Ranges: bytes" ); header( "Content-Length: $range_size" ); header( 'Content-Disposition: attachment; filename="' . $name . '";' ); $ch = curl_init(); curl_setopt( $ch ,CURLOPT_URL, $url ); curl_setopt( $ch ,CURLOPT_RANGE, $range ); curl_setopt( $ch ,CURLOPT_RETURNTRANSFER,0); curl_setopt( $ch ,CURLOPT_FOLLOWLOCATION, 1 ); curl_setopt( $ch ,CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3' ); curl_exec( $ch ); curl_close( $ch ); ?>
  26. Copy Source | Copy HTML <?php $offset = isset ( $_REQUEST [ 'offset' ]) ? (int) $_REQUEST [ 'offset' ] : 0; $size = isset ( $_REQUEST [ 'size' ]) ? (int) $_REQUEST [ 'size' ] : false ; $name = isset ( $_REQUEST [ 'name' ]) ? urlencode( $_REQUEST [ 'name' ]) : 'download.bin' ; if ( empty ( $size )) die ; // link to archive file $url = 'http://archive_file_url' ; @set_time_limit(0); $range_size = $size ; $range_offset = $offset ; if ( isset ( $_SERVER [ 'HTTP_RANGE' ])) { if (preg_match( '/^bytes=(\d+)\-$/' , $_SERVER [ 'HTTP_RANGE' ], $m )) { $range_offset += $m [ 1 ]; $range_size -= $m [ 1 ]; } elseif (preg_match( '/^bytes=(\d+)\-(\d+)$/' , $_SERVER [ 'HTTP_RANGE' ], $m )) { $range_offset += $m [ 1 ]; $range_size = $m [ 2 ]- $m [ 1 ]+ 1 ; } else { // TODO (aig): support other ranges if needed die (); } header( 'HTTP/1.1 206 Partial Content' ); } else { header( 'HTTP/1.1 200 Ok' ); } $range = ( $range_offset ). "-" .( $range_offset + $range_size - 1 ); header( "Content-Type: application/octet-stream" ); header( "Accept-Ranges: bytes" ); header( "Content-Length: $range_size" ); header( 'Content-Disposition: attachment; filename="' . $name . '";' ); $ch = curl_init(); curl_setopt( $ch ,CURLOPT_URL, $url ); curl_setopt( $ch ,CURLOPT_RANGE, $range ); curl_setopt( $ch ,CURLOPT_RETURNTRANSFER,0); curl_setopt( $ch ,CURLOPT_FOLLOWLOCATION, 1 ); curl_setopt( $ch ,CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3' ); curl_exec( $ch ); curl_close( $ch ); ?>
  27. Copy Source | Copy HTML <?php $offset = isset ( $_REQUEST [ 'offset' ]) ? (int) $_REQUEST [ 'offset' ] : 0; $size = isset ( $_REQUEST [ 'size' ]) ? (int) $_REQUEST [ 'size' ] : false ; $name = isset ( $_REQUEST [ 'name' ]) ? urlencode( $_REQUEST [ 'name' ]) : 'download.bin' ; if ( empty ( $size )) die ; // link to archive file $url = 'http://archive_file_url' ; @set_time_limit(0); $range_size = $size ; $range_offset = $offset ; if ( isset ( $_SERVER [ 'HTTP_RANGE' ])) { if (preg_match( '/^bytes=(\d+)\-$/' , $_SERVER [ 'HTTP_RANGE' ], $m )) { $range_offset += $m [ 1 ]; $range_size -= $m [ 1 ]; } elseif (preg_match( '/^bytes=(\d+)\-(\d+)$/' , $_SERVER [ 'HTTP_RANGE' ], $m )) { $range_offset += $m [ 1 ]; $range_size = $m [ 2 ]- $m [ 1 ]+ 1 ; } else { // TODO (aig): support other ranges if needed die (); } header( 'HTTP/1.1 206 Partial Content' ); } else { header( 'HTTP/1.1 200 Ok' ); } $range = ( $range_offset ). "-" .( $range_offset + $range_size - 1 ); header( "Content-Type: application/octet-stream" ); header( "Accept-Ranges: bytes" ); header( "Content-Length: $range_size" ); header( 'Content-Disposition: attachment; filename="' . $name . '";' ); $ch = curl_init(); curl_setopt( $ch ,CURLOPT_URL, $url ); curl_setopt( $ch ,CURLOPT_RANGE, $range ); curl_setopt( $ch ,CURLOPT_RETURNTRANSFER,0); curl_setopt( $ch ,CURLOPT_FOLLOWLOCATION, 1 ); curl_setopt( $ch ,CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3' ); curl_exec( $ch ); curl_close( $ch ); ?>
  28. Copy Source | Copy HTML <?php $offset = isset ( $_REQUEST [ 'offset' ]) ? (int) $_REQUEST [ 'offset' ] : 0; $size = isset ( $_REQUEST [ 'size' ]) ? (int) $_REQUEST [ 'size' ] : false ; $name = isset ( $_REQUEST [ 'name' ]) ? urlencode( $_REQUEST [ 'name' ]) : 'download.bin' ; if ( empty ( $size )) die ; // link to archive file $url = 'http://archive_file_url' ; @set_time_limit(0); $range_size = $size ; $range_offset = $offset ; if ( isset ( $_SERVER [ 'HTTP_RANGE' ])) { if (preg_match( '/^bytes=(\d+)\-$/' , $_SERVER [ 'HTTP_RANGE' ], $m )) { $range_offset += $m [ 1 ]; $range_size -= $m [ 1 ]; } elseif (preg_match( '/^bytes=(\d+)\-(\d+)$/' , $_SERVER [ 'HTTP_RANGE' ], $m )) { $range_offset += $m [ 1 ]; $range_size = $m [ 2 ]- $m [ 1 ]+ 1 ; } else { // TODO (aig): support other ranges if needed die (); } header( 'HTTP/1.1 206 Partial Content' ); } else { header( 'HTTP/1.1 200 Ok' ); } $range = ( $range_offset ). "-" .( $range_offset + $range_size - 1 ); header( "Content-Type: application/octet-stream" ); header( "Accept-Ranges: bytes" ); header( "Content-Length: $range_size" ); header( 'Content-Disposition: attachment; filename="' . $name . '";' ); $ch = curl_init(); curl_setopt( $ch ,CURLOPT_URL, $url ); curl_setopt( $ch ,CURLOPT_RANGE, $range ); curl_setopt( $ch ,CURLOPT_RETURNTRANSFER,0); curl_setopt( $ch ,CURLOPT_FOLLOWLOCATION, 1 ); curl_setopt( $ch ,CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3' ); curl_exec( $ch ); curl_close( $ch ); ?>
  29. Copy Source | Copy HTML <?php $offset = isset ( $_REQUEST [ 'offset' ]) ? (int) $_REQUEST [ 'offset' ] : 0; $size = isset ( $_REQUEST [ 'size' ]) ? (int) $_REQUEST [ 'size' ] : false ; $name = isset ( $_REQUEST [ 'name' ]) ? urlencode( $_REQUEST [ 'name' ]) : 'download.bin' ; if ( empty ( $size )) die ; // link to archive file $url = 'http://archive_file_url' ; @set_time_limit(0); $range_size = $size ; $range_offset = $offset ; if ( isset ( $_SERVER [ 'HTTP_RANGE' ])) { if (preg_match( '/^bytes=(\d+)\-$/' , $_SERVER [ 'HTTP_RANGE' ], $m )) { $range_offset += $m [ 1 ]; $range_size -= $m [ 1 ]; } elseif (preg_match( '/^bytes=(\d+)\-(\d+)$/' , $_SERVER [ 'HTTP_RANGE' ], $m )) { $range_offset += $m [ 1 ]; $range_size = $m [ 2 ]- $m [ 1 ]+ 1 ; } else { // TODO (aig): support other ranges if needed die (); } header( 'HTTP/1.1 206 Partial Content' ); } else { header( 'HTTP/1.1 200 Ok' ); } $range = ( $range_offset ). "-" .( $range_offset + $range_size - 1 ); header( "Content-Type: application/octet-stream" ); header( "Accept-Ranges: bytes" ); header( "Content-Length: $range_size" ); header( 'Content-Disposition: attachment; filename="' . $name . '";' ); $ch = curl_init(); curl_setopt( $ch ,CURLOPT_URL, $url ); curl_setopt( $ch ,CURLOPT_RANGE, $range ); curl_setopt( $ch ,CURLOPT_RETURNTRANSFER,0); curl_setopt( $ch ,CURLOPT_FOLLOWLOCATION, 1 ); curl_setopt( $ch ,CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3' ); curl_exec( $ch ); curl_close( $ch ); ?>
  30. Copy Source | Copy HTML <?php $offset = isset ( $_REQUEST [ 'offset' ]) ? (int) $_REQUEST [ 'offset' ] : 0; $size = isset ( $_REQUEST [ 'size' ]) ? (int) $_REQUEST [ 'size' ] : false ; $name = isset ( $_REQUEST [ 'name' ]) ? urlencode( $_REQUEST [ 'name' ]) : 'download.bin' ; if ( empty ( $size )) die ; // link to archive file $url = 'http://archive_file_url' ; @set_time_limit(0); $range_size = $size ; $range_offset = $offset ; if ( isset ( $_SERVER [ 'HTTP_RANGE' ])) { if (preg_match( '/^bytes=(\d+)\-$/' , $_SERVER [ 'HTTP_RANGE' ], $m )) { $range_offset += $m [ 1 ]; $range_size -= $m [ 1 ]; } elseif (preg_match( '/^bytes=(\d+)\-(\d+)$/' , $_SERVER [ 'HTTP_RANGE' ], $m )) { $range_offset += $m [ 1 ]; $range_size = $m [ 2 ]- $m [ 1 ]+ 1 ; } else { // TODO (aig): support other ranges if needed die (); } header( 'HTTP/1.1 206 Partial Content' ); } else { header( 'HTTP/1.1 200 Ok' ); } $range = ( $range_offset ). "-" .( $range_offset + $range_size - 1 ); header( "Content-Type: application/octet-stream" ); header( "Accept-Ranges: bytes" ); header( "Content-Length: $range_size" ); header( 'Content-Disposition: attachment; filename="' . $name . '";' ); $ch = curl_init(); curl_setopt( $ch ,CURLOPT_URL, $url ); curl_setopt( $ch ,CURLOPT_RANGE, $range ); curl_setopt( $ch ,CURLOPT_RETURNTRANSFER,0); curl_setopt( $ch ,CURLOPT_FOLLOWLOCATION, 1 ); curl_setopt( $ch ,CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3' ); curl_exec( $ch ); curl_close( $ch ); ?>
  31. Copy Source | Copy HTML <?php $offset = isset ( $_REQUEST [ 'offset' ]) ? (int) $_REQUEST [ 'offset' ] : 0; $size = isset ( $_REQUEST [ 'size' ]) ? (int) $_REQUEST [ 'size' ] : false ; $name = isset ( $_REQUEST [ 'name' ]) ? urlencode( $_REQUEST [ 'name' ]) : 'download.bin' ; if ( empty ( $size )) die ; // link to archive file $url = 'http://archive_file_url' ; @set_time_limit(0); $range_size = $size ; $range_offset = $offset ; if ( isset ( $_SERVER [ 'HTTP_RANGE' ])) { if (preg_match( '/^bytes=(\d+)\-$/' , $_SERVER [ 'HTTP_RANGE' ], $m )) { $range_offset += $m [ 1 ]; $range_size -= $m [ 1 ]; } elseif (preg_match( '/^bytes=(\d+)\-(\d+)$/' , $_SERVER [ 'HTTP_RANGE' ], $m )) { $range_offset += $m [ 1 ]; $range_size = $m [ 2 ]- $m [ 1 ]+ 1 ; } else { // TODO (aig): support other ranges if needed die (); } header( 'HTTP/1.1 206 Partial Content' ); } else { header( 'HTTP/1.1 200 Ok' ); } $range = ( $range_offset ). "-" .( $range_offset + $range_size - 1 ); header( "Content-Type: application/octet-stream" ); header( "Accept-Ranges: bytes" ); header( "Content-Length: $range_size" ); header( 'Content-Disposition: attachment; filename="' . $name . '";' ); $ch = curl_init(); curl_setopt( $ch ,CURLOPT_URL, $url ); curl_setopt( $ch ,CURLOPT_RANGE, $range ); curl_setopt( $ch ,CURLOPT_RETURNTRANSFER,0); curl_setopt( $ch ,CURLOPT_FOLLOWLOCATION, 1 ); curl_setopt( $ch ,CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3' ); curl_exec( $ch ); curl_close( $ch ); ?>
  32. Copy Source | Copy HTML <?php $offset = isset ( $_REQUEST [ 'offset' ]) ? (int) $_REQUEST [ 'offset' ] : 0; $size = isset ( $_REQUEST [ 'size' ]) ? (int) $_REQUEST [ 'size' ] : false ; $name = isset ( $_REQUEST [ 'name' ]) ? urlencode( $_REQUEST [ 'name' ]) : 'download.bin' ; if ( empty ( $size )) die ; // link to archive file $url = 'http://archive_file_url' ; @set_time_limit(0); $range_size = $size ; $range_offset = $offset ; if ( isset ( $_SERVER [ 'HTTP_RANGE' ])) { if (preg_match( '/^bytes=(\d+)\-$/' , $_SERVER [ 'HTTP_RANGE' ], $m )) { $range_offset += $m [ 1 ]; $range_size -= $m [ 1 ]; } elseif (preg_match( '/^bytes=(\d+)\-(\d+)$/' , $_SERVER [ 'HTTP_RANGE' ], $m )) { $range_offset += $m [ 1 ]; $range_size = $m [ 2 ]- $m [ 1 ]+ 1 ; } else { // TODO (aig): support other ranges if needed die (); } header( 'HTTP/1.1 206 Partial Content' ); } else { header( 'HTTP/1.1 200 Ok' ); } $range = ( $range_offset ). "-" .( $range_offset + $range_size - 1 ); header( "Content-Type: application/octet-stream" ); header( "Accept-Ranges: bytes" ); header( "Content-Length: $range_size" ); header( 'Content-Disposition: attachment; filename="' . $name . '";' ); $ch = curl_init(); curl_setopt( $ch ,CURLOPT_URL, $url ); curl_setopt( $ch ,CURLOPT_RANGE, $range ); curl_setopt( $ch ,CURLOPT_RETURNTRANSFER,0); curl_setopt( $ch ,CURLOPT_FOLLOWLOCATION, 1 ); curl_setopt( $ch ,CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3' ); curl_exec( $ch ); curl_close( $ch ); ?>
  33. Copy Source | Copy HTML <?php $offset = isset ( $_REQUEST [ 'offset' ]) ? (int) $_REQUEST [ 'offset' ] : 0; $size = isset ( $_REQUEST [ 'size' ]) ? (int) $_REQUEST [ 'size' ] : false ; $name = isset ( $_REQUEST [ 'name' ]) ? urlencode( $_REQUEST [ 'name' ]) : 'download.bin' ; if ( empty ( $size )) die ; // link to archive file $url = 'http://archive_file_url' ; @set_time_limit(0); $range_size = $size ; $range_offset = $offset ; if ( isset ( $_SERVER [ 'HTTP_RANGE' ])) { if (preg_match( '/^bytes=(\d+)\-$/' , $_SERVER [ 'HTTP_RANGE' ], $m )) { $range_offset += $m [ 1 ]; $range_size -= $m [ 1 ]; } elseif (preg_match( '/^bytes=(\d+)\-(\d+)$/' , $_SERVER [ 'HTTP_RANGE' ], $m )) { $range_offset += $m [ 1 ]; $range_size = $m [ 2 ]- $m [ 1 ]+ 1 ; } else { // TODO (aig): support other ranges if needed die (); } header( 'HTTP/1.1 206 Partial Content' ); } else { header( 'HTTP/1.1 200 Ok' ); } $range = ( $range_offset ). "-" .( $range_offset + $range_size - 1 ); header( "Content-Type: application/octet-stream" ); header( "Accept-Ranges: bytes" ); header( "Content-Length: $range_size" ); header( 'Content-Disposition: attachment; filename="' . $name . '";' ); $ch = curl_init(); curl_setopt( $ch ,CURLOPT_URL, $url ); curl_setopt( $ch ,CURLOPT_RANGE, $range ); curl_setopt( $ch ,CURLOPT_RETURNTRANSFER,0); curl_setopt( $ch ,CURLOPT_FOLLOWLOCATION, 1 ); curl_setopt( $ch ,CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3' ); curl_exec( $ch ); curl_close( $ch ); ?>
  34. Copy Source | Copy HTML <?php $offset = isset ( $_REQUEST [ 'offset' ]) ? (int) $_REQUEST [ 'offset' ] : 0; $size = isset ( $_REQUEST [ 'size' ]) ? (int) $_REQUEST [ 'size' ] : false ; $name = isset ( $_REQUEST [ 'name' ]) ? urlencode( $_REQUEST [ 'name' ]) : 'download.bin' ; if ( empty ( $size )) die ; // link to archive file $url = 'http://archive_file_url' ; @set_time_limit(0); $range_size = $size ; $range_offset = $offset ; if ( isset ( $_SERVER [ 'HTTP_RANGE' ])) { if (preg_match( '/^bytes=(\d+)\-$/' , $_SERVER [ 'HTTP_RANGE' ], $m )) { $range_offset += $m [ 1 ]; $range_size -= $m [ 1 ]; } elseif (preg_match( '/^bytes=(\d+)\-(\d+)$/' , $_SERVER [ 'HTTP_RANGE' ], $m )) { $range_offset += $m [ 1 ]; $range_size = $m [ 2 ]- $m [ 1 ]+ 1 ; } else { // TODO (aig): support other ranges if needed die (); } header( 'HTTP/1.1 206 Partial Content' ); } else { header( 'HTTP/1.1 200 Ok' ); } $range = ( $range_offset ). "-" .( $range_offset + $range_size - 1 ); header( "Content-Type: application/octet-stream" ); header( "Accept-Ranges: bytes" ); header( "Content-Length: $range_size" ); header( 'Content-Disposition: attachment; filename="' . $name . '";' ); $ch = curl_init(); curl_setopt( $ch ,CURLOPT_URL, $url ); curl_setopt( $ch ,CURLOPT_RANGE, $range ); curl_setopt( $ch ,CURLOPT_RETURNTRANSFER,0); curl_setopt( $ch ,CURLOPT_FOLLOWLOCATION, 1 ); curl_setopt( $ch ,CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3' ); curl_exec( $ch ); curl_close( $ch ); ?>
  35. Copy Source | Copy HTML <?php $offset = isset ( $_REQUEST [ 'offset' ]) ? (int) $_REQUEST [ 'offset' ] : 0; $size = isset ( $_REQUEST [ 'size' ]) ? (int) $_REQUEST [ 'size' ] : false ; $name = isset ( $_REQUEST [ 'name' ]) ? urlencode( $_REQUEST [ 'name' ]) : 'download.bin' ; if ( empty ( $size )) die ; // link to archive file $url = 'http://archive_file_url' ; @set_time_limit(0); $range_size = $size ; $range_offset = $offset ; if ( isset ( $_SERVER [ 'HTTP_RANGE' ])) { if (preg_match( '/^bytes=(\d+)\-$/' , $_SERVER [ 'HTTP_RANGE' ], $m )) { $range_offset += $m [ 1 ]; $range_size -= $m [ 1 ]; } elseif (preg_match( '/^bytes=(\d+)\-(\d+)$/' , $_SERVER [ 'HTTP_RANGE' ], $m )) { $range_offset += $m [ 1 ]; $range_size = $m [ 2 ]- $m [ 1 ]+ 1 ; } else { // TODO (aig): support other ranges if needed die (); } header( 'HTTP/1.1 206 Partial Content' ); } else { header( 'HTTP/1.1 200 Ok' ); } $range = ( $range_offset ). "-" .( $range_offset + $range_size - 1 ); header( "Content-Type: application/octet-stream" ); header( "Accept-Ranges: bytes" ); header( "Content-Length: $range_size" ); header( 'Content-Disposition: attachment; filename="' . $name . '";' ); $ch = curl_init(); curl_setopt( $ch ,CURLOPT_URL, $url ); curl_setopt( $ch ,CURLOPT_RANGE, $range ); curl_setopt( $ch ,CURLOPT_RETURNTRANSFER,0); curl_setopt( $ch ,CURLOPT_FOLLOWLOCATION, 1 ); curl_setopt( $ch ,CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3' ); curl_exec( $ch ); curl_close( $ch ); ?>
  36. Copy Source | Copy HTML <?php $offset = isset ( $_REQUEST [ 'offset' ]) ? (int) $_REQUEST [ 'offset' ] : 0; $size = isset ( $_REQUEST [ 'size' ]) ? (int) $_REQUEST [ 'size' ] : false ; $name = isset ( $_REQUEST [ 'name' ]) ? urlencode( $_REQUEST [ 'name' ]) : 'download.bin' ; if ( empty ( $size )) die ; // link to archive file $url = 'http://archive_file_url' ; @set_time_limit(0); $range_size = $size ; $range_offset = $offset ; if ( isset ( $_SERVER [ 'HTTP_RANGE' ])) { if (preg_match( '/^bytes=(\d+)\-$/' , $_SERVER [ 'HTTP_RANGE' ], $m )) { $range_offset += $m [ 1 ]; $range_size -= $m [ 1 ]; } elseif (preg_match( '/^bytes=(\d+)\-(\d+)$/' , $_SERVER [ 'HTTP_RANGE' ], $m )) { $range_offset += $m [ 1 ]; $range_size = $m [ 2 ]- $m [ 1 ]+ 1 ; } else { // TODO (aig): support other ranges if needed die (); } header( 'HTTP/1.1 206 Partial Content' ); } else { header( 'HTTP/1.1 200 Ok' ); } $range = ( $range_offset ). "-" .( $range_offset + $range_size - 1 ); header( "Content-Type: application/octet-stream" ); header( "Accept-Ranges: bytes" ); header( "Content-Length: $range_size" ); header( 'Content-Disposition: attachment; filename="' . $name . '";' ); $ch = curl_init(); curl_setopt( $ch ,CURLOPT_URL, $url ); curl_setopt( $ch ,CURLOPT_RANGE, $range ); curl_setopt( $ch ,CURLOPT_RETURNTRANSFER,0); curl_setopt( $ch ,CURLOPT_FOLLOWLOCATION, 1 ); curl_setopt( $ch ,CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3' ); curl_exec( $ch ); curl_close( $ch ); ?>
  37. Copy Source | Copy HTML <?php $offset = isset ( $_REQUEST [ 'offset' ]) ? (int) $_REQUEST [ 'offset' ] : 0; $size = isset ( $_REQUEST [ 'size' ]) ? (int) $_REQUEST [ 'size' ] : false ; $name = isset ( $_REQUEST [ 'name' ]) ? urlencode( $_REQUEST [ 'name' ]) : 'download.bin' ; if ( empty ( $size )) die ; // link to archive file $url = 'http://archive_file_url' ; @set_time_limit(0); $range_size = $size ; $range_offset = $offset ; if ( isset ( $_SERVER [ 'HTTP_RANGE' ])) { if (preg_match( '/^bytes=(\d+)\-$/' , $_SERVER [ 'HTTP_RANGE' ], $m )) { $range_offset += $m [ 1 ]; $range_size -= $m [ 1 ]; } elseif (preg_match( '/^bytes=(\d+)\-(\d+)$/' , $_SERVER [ 'HTTP_RANGE' ], $m )) { $range_offset += $m [ 1 ]; $range_size = $m [ 2 ]- $m [ 1 ]+ 1 ; } else { // TODO (aig): support other ranges if needed die (); } header( 'HTTP/1.1 206 Partial Content' ); } else { header( 'HTTP/1.1 200 Ok' ); } $range = ( $range_offset ). "-" .( $range_offset + $range_size - 1 ); header( "Content-Type: application/octet-stream" ); header( "Accept-Ranges: bytes" ); header( "Content-Length: $range_size" ); header( 'Content-Disposition: attachment; filename="' . $name . '";' ); $ch = curl_init(); curl_setopt( $ch ,CURLOPT_URL, $url ); curl_setopt( $ch ,CURLOPT_RANGE, $range ); curl_setopt( $ch ,CURLOPT_RETURNTRANSFER,0); curl_setopt( $ch ,CURLOPT_FOLLOWLOCATION, 1 ); curl_setopt( $ch ,CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3' ); curl_exec( $ch ); curl_close( $ch ); ?>
  38. Copy Source | Copy HTML <?php $offset = isset ( $_REQUEST [ 'offset' ]) ? (int) $_REQUEST [ 'offset' ] : 0; $size = isset ( $_REQUEST [ 'size' ]) ? (int) $_REQUEST [ 'size' ] : false ; $name = isset ( $_REQUEST [ 'name' ]) ? urlencode( $_REQUEST [ 'name' ]) : 'download.bin' ; if ( empty ( $size )) die ; // link to archive file $url = 'http://archive_file_url' ; @set_time_limit(0); $range_size = $size ; $range_offset = $offset ; if ( isset ( $_SERVER [ 'HTTP_RANGE' ])) { if (preg_match( '/^bytes=(\d+)\-$/' , $_SERVER [ 'HTTP_RANGE' ], $m )) { $range_offset += $m [ 1 ]; $range_size -= $m [ 1 ]; } elseif (preg_match( '/^bytes=(\d+)\-(\d+)$/' , $_SERVER [ 'HTTP_RANGE' ], $m )) { $range_offset += $m [ 1 ]; $range_size = $m [ 2 ]- $m [ 1 ]+ 1 ; } else { // TODO (aig): support other ranges if needed die (); } header( 'HTTP/1.1 206 Partial Content' ); } else { header( 'HTTP/1.1 200 Ok' ); } $range = ( $range_offset ). "-" .( $range_offset + $range_size - 1 ); header( "Content-Type: application/octet-stream" ); header( "Accept-Ranges: bytes" ); header( "Content-Length: $range_size" ); header( 'Content-Disposition: attachment; filename="' . $name . '";' ); $ch = curl_init(); curl_setopt( $ch ,CURLOPT_URL, $url ); curl_setopt( $ch ,CURLOPT_RANGE, $range ); curl_setopt( $ch ,CURLOPT_RETURNTRANSFER,0); curl_setopt( $ch ,CURLOPT_FOLLOWLOCATION, 1 ); curl_setopt( $ch ,CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3' ); curl_exec( $ch ); curl_close( $ch ); ?>
  39. Copy Source | Copy HTML <?php $offset = isset ( $_REQUEST [ 'offset' ]) ? (int) $_REQUEST [ 'offset' ] : 0; $size = isset ( $_REQUEST [ 'size' ]) ? (int) $_REQUEST [ 'size' ] : false ; $name = isset ( $_REQUEST [ 'name' ]) ? urlencode( $_REQUEST [ 'name' ]) : 'download.bin' ; if ( empty ( $size )) die ; // link to archive file $url = 'http://archive_file_url' ; @set_time_limit(0); $range_size = $size ; $range_offset = $offset ; if ( isset ( $_SERVER [ 'HTTP_RANGE' ])) { if (preg_match( '/^bytes=(\d+)\-$/' , $_SERVER [ 'HTTP_RANGE' ], $m )) { $range_offset += $m [ 1 ]; $range_size -= $m [ 1 ]; } elseif (preg_match( '/^bytes=(\d+)\-(\d+)$/' , $_SERVER [ 'HTTP_RANGE' ], $m )) { $range_offset += $m [ 1 ]; $range_size = $m [ 2 ]- $m [ 1 ]+ 1 ; } else { // TODO (aig): support other ranges if needed die (); } header( 'HTTP/1.1 206 Partial Content' ); } else { header( 'HTTP/1.1 200 Ok' ); } $range = ( $range_offset ). "-" .( $range_offset + $range_size - 1 ); header( "Content-Type: application/octet-stream" ); header( "Accept-Ranges: bytes" ); header( "Content-Length: $range_size" ); header( 'Content-Disposition: attachment; filename="' . $name . '";' ); $ch = curl_init(); curl_setopt( $ch ,CURLOPT_URL, $url ); curl_setopt( $ch ,CURLOPT_RANGE, $range ); curl_setopt( $ch ,CURLOPT_RETURNTRANSFER,0); curl_setopt( $ch ,CURLOPT_FOLLOWLOCATION, 1 ); curl_setopt( $ch ,CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3' ); curl_exec( $ch ); curl_close( $ch ); ?>

Source: https://habr.com/ru/post/67043/


All Articles