[PHP] Downloader help needed :-(

2009-09-24 Thread Chris Payne
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
 * @date18/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');
if(@$file = fopen($file, rb)) {
while(!feof($file))
echo fread($file, 8192);
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



Re: [PHP] Downloader help needed :-(

2009-09-24 Thread Tommy Pham
- Original Message 

 From: Chris Payne chris_pa...@danmangames.com
 To: php-general@lists.php.net
 Sent: Thursday, September 24, 2009 2:57:57 PM
 Subject: [PHP] 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
  * -
  * @authorAndrea Giammarchi
  * @date18/01/2005 [17/05/2006]
  * @compatibilityPHP = 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



Re: [PHP] Downloader help needed :-(

2009-09-24 Thread Tommy Pham
- Original Message 
 From: Tommy Pham tommy...@yahoo.com
 To: php-general@lists.php.net
 Sent: Thursday, September 24, 2009 4:19:48 PM
 Subject: Re: [PHP] Downloader help needed :-(
 
 - Original Message 
 
  From: Chris Payne 
  To: php-general@lists.php.net
  Sent: Thursday, September 24, 2009 2:57:57 PM
  Subject: [PHP] 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
   * -
   * @authorAndrea Giammarchi
   * @date18/01/2005 [17/05/2006]
   * @compatibilityPHP = 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

Sorry, still not wide awake from my afternoon nap...
The above should read:

echo fread($file, 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


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



Re: [PHP] Downloader help needed :-(

2009-09-24 Thread Chris Payne
Hi there,

Thank you Tommy, I will look at this when my little 3 year old devil
is in bed, I appreciate your help :-)

Chris

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