Introduction
   HTTP_Download 
   provides an interface to easily send any arbitrary data to HTTP clients. 
   HTTP_Download
   can gain its data from variables, files or stream resources.
  
   With this package you can easily handle (hidden) downloads.
   Hidden means not accessible by the public 
   - for instance if you want to restrict access to particular downloads.
  
   It supports HTTP compression, caching and partial downloads, 
   resuming and sending raw data, for example from database BLOBs.
  
  ATTENTION:
   You shouldn't use this package together with ob_gzhandler or 
   zlib.output_compression enabled in your php.ini, especially 
   if you want to send already gzipped data!
  
Usage Examples:
    Have a look at the following examples:
   
Example 42-1. Static send: 1  $params = array(
2   'file'                => '../hidden/download.tgz',
3   'contenttype'         => 'application/x-gzip',
4   'contentdisposition'  => array(HTTP_DOWNLOAD_ATTACHMENT, 'latest.tgz'),
5  );
6  
7  $error = HTTP_Download::staticSend($params, false);  |  
  | 
Example 42-2. Send a hidden file: 1  $dl = &new HTTP_Download();
2  $dl->setFile('../hidden/download.tgz');
3  $dl->setContentDisposition(HTTP_DOWNLOAD_ATTACHMENT, 'latest.tgz');
4  // with ext/magic.mime
5  // $dl->guessContentType();
6  // else:
7  $dl->setContentType('application/x-gzip');
8  $dl->send(); |  
  | 
Example 42-3. Send arbitrary data: 1  $dl = &new HTTP_Download();
2  $dl->setData($data);
3  $dl->setLastModified($unix_timestamp);
4  $dl->setContentType('application/x-gzip');
5  $dl->setContentDisposition(HTTP_DOWNLOAD_ATTACHMENT, 'latest.tgz');
6  $dl->send(); |  
  | 
Example 42-4. Limiting bandwidth: 1  $dl = &new HTTP_Download();
2  $dl->setFile('huge_file.bin');
3  $dl->setBufferSize(25 * 1024); // 25 K
4  $dl->setThrottleDelay(1);   // 1 sec
5  $dl->send(); |  
  | 
Example 42-5. Sending a PostgreSQL LOB: 1  require_once 'HTTP/Download.php';
2  require_once 'HTTP/Download/PgLOB.php';
3  $dl = &new HTTP_Download();
4  $dl->setResource(
5    HTTP_Download_PgLOB::open(pg_connect('dbname=lobs'), 12345));
6  $dl->send(); |  
  |