Re: Downloader help needed :-(

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



----- Original Message ----

> From: Chris Payne <chris_payne@xxxxxxxxxxxxxxx>
> To: php-general@xxxxxxxxxxxxx
> Sent: Thursday, September 24, 2009 2:57:57 PM
> Subject:  Downloader help needed :-(
> 
> HI everyone,
> 
> Thanks for those of you in the past that helped me with my downloader
> not displaying the filename.  Someone gave me a link to the downloader
> below which works GREAT but i've tried and tried to limit the data
> transfer to 60KB a second andI can't get it to work, can any of you
> see what I could add to get it to work?  The first peice of code the
> code I WANT to use as it lets me download with the correct filename
> etc ...... but the second piece of code allows me to limit the speed
> of the transfer but when I try to merge the second with the first it
> craps out on me.
> 
> Any help would REALLY be appreciated on this one.
> 
> Thanks everyone.
> 
> Piece of code 1 (Code I WANT to use)
> 
> function forceDownload($file) {
>     /**
>      * Function forceDownload:
>      *    download any type of file if it exists and is readable
>      * -------------------------------------
>      * @author        Andrea Giammarchi
>      * @date        18/01/2005 [17/05/2006]
>      * @compatibility    PHP >= 4.3.0
>      */
>     if(file_exists($file) && is_readable($file)) {
>         $filename = basename($file);
>         if(strpos(strtoupper($_SERVER['HTTP_USER_AGENT']), 'MSIE') !== false
> && strpos($filename, '.') !== false) {
>             $parsename = explode('.', $filename);
>             $last = count($parsename) - 1;
>             $filename = implode('%2E', array_slice($parsename, 0, $last));
>             $filename .= '.'.$parsename[$last];
>         };
>         header('Content-Type: application/octet-stream');
>         header('Content-Disposition: attachment; filename="'.$filename.'"');
>         header('Content-Length:'.filesize($file));
>         header('Content-Transfer-Encoding: binary');

$speed = 60; // i.e. 60 kb/s download rate

>         if(@$file = fopen($file, "rb")) {
>             while(!feof($file))
{
//                echo fread($file, 8192);
      echo fread($fd, round($speed*1024)); // $speed kb at a time
      flush();
      sleep(1);
}
            fclose($file);

>         };


>         exit(0);
>     };
> 
> };
> 
> Piece of code 2 (Which limits nice but has other issues)
> 
> $speed = 60; // i.e. 60 kb/s download rate
> if(file_exists($file) && is_file($file)) {
>    header("Cache-control: private");
>    header("Content-Type: application/octet-stream");
>    header("Content-Length: ".filesize($file));
>    //header("Content-Disposition: filename=$file" . "%20");
> 
>    header("Content-Disposition: attachment; filename=\"$file\"");
> 
>    flush();
>    $fd = fopen($file, "r");
>    while(!feof($fd)) {
>       echo fread($fd, round($speed*1024)); // $speed kb at a time
>       flush();
>       sleep(1);
>    }
>    fclose ($fd);
> }
> 
> Thank you everyone, it's really appreciated.
> 
> Chris
> 
> -- 
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php

Try the above changes.


-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux