[UPHPU] RE: PHP indirect download

District Webmaster webmaster at alpine.k12.ut.us
Tue Feb 3 19:18:18 MST 2004


Just a note here . . .

I was working on a script that does this recently, and Wade provided
some excellent code that did most of what I wanted (thanks, Wade). But I
was having trouble tweaking things "just so" (emulating some specific
behaviours I found at other web sites). I installed the "Live HTTP
Headers" extension for the Firebird brower, and it helped _immensely_ to
be able to compare my headers to those of web sites I was attempting to
emulate. If you have Firebird (and believe me, you should) you can get
the Live HTTP Headers extension here:

    http://livehttpheaders.mozdev.org

Dave

>>> "Kenneth Burgener" <email at kennethburgener.com> 02/03/04 1:33 PM >>>
Sweet!  Thanks for the quick response.

-----Original Message-----
From: Jonathan Gale [mailto:jgale at j2.net]
Sent: Tuesday, February 03, 2004 1:27 PM
To: Kenneth Burgener
Cc: list at uphpu.org
Subject: Re: [UPHPU] RE: PHP indirect download


Kenneth,

It's a pretty trivial task to have a PHP script serve up a file from 
another (non HTTP accessible location).  Something like this would work:

<?php
$filepath = '/path/to/files';
$file = $_GET['file'];
Header('Content-type: application/octet-stream');
readfile("$filepath/$file");
?>

The trick however is sending the correct headers so the download works 
correctly in all browsers.

This header set will generally work:

header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");
header("Content-Disposition: attachment; 
filename=".basename($filename).";");
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".filesize($filename));

Some good reference URLs:

http://us4.php.net/manual/sv/function.readfile.php
http://us4.php.net/manual/sv/function.fpassthru.php

Good luck.

Jon

Kenneth Burgener wrote:

> I would like to make it so that users do not have a link to directly
access a downloadable file.  I want the script to push the file.  I see
websites doing this all the time.  Any suggestions?
> 
> Normal download:
> http://mydomain.com/file.zip
> 
> What they look like:
> http://mydomain.com/download.php?file=QWERASDFASDFASDF
> 
> Thanks in advance.
> 
> 
> 
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: list-unsubscribe at uphpu.org
> For additional commands, e-mail: list-help at uphpu.org
> 
> 





---------------------------------------------------------------------
To unsubscribe, e-mail: list-unsubscribe at uphpu.org
For additional commands, e-mail: list-help at uphpu.org






More information about the UPHPU mailing list