[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