Can you help explain this code? It looks like you're on the right track but have a few flaws (at first glance).
> <?php > session_cache_limiter('public'); > session_start(); Is there a reason to be using sessions here? > set_time_limit(0); > $file=$_REQUEST['file']; > $extstart=strpos($file, "."); What does $extstart contain now? > $ext=substr($file, $extstart+1); So $ext is now a piece of the file. Why? > $dir="d:\\downloadable_courses"; > $size=filesize($dir."\\".$file); > header("Accept-Ranges: bytes"); So $size is now the size of the entire file (not the piece). > if(isset($_ENV['HTTP_RANGE'])) { > list($a, $range)=explode("=",$_ENV['HTTP_RANGE']); So $a is now bytes, and $range is something like 123-456 > str_replace($range, "-", $range); This makes no sense. The range requested is bytes 123 through 456, and you're converting this to 123456. Why? > $size2=$size-1; > header("Content-Range: $range$size2/$size"); > $new_length=$size2-$range; This will definitely not work, based on my comments above. If someone sends this header: Range: bytes=0-1023 and your resource is 2048 bytes in size, your response should include this header: Content-Range: bytes 0-1023/2048 Work on generating the correct string before you bother actually using them as headers and trying for the full solution. Hope that helps. Chris ===== Become a better Web developer with the HTTP Developer's Handbook http://httphandbook.org/ -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php