Okay, I found a solution to part one of my questions by changing my headers, but for some reason I am still getting a fractional download of the file. Most commonly it's about 16.6KB of a 4MB file. The kicker is it says that it completed successfully.
Here is the modified code: <?php $download = 'url/path/to/file'.urldecode( $_GET['link'] ); $type = urldecode( $_GET['type'] ); $size = filesize( '/abs/path/to/file'.urldecode( $_GET['link'] ) ); header("Pragma: public"); header("Expires: 0"); // set expiration time header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); // browser must download file from server instead of cache // force download dialog header("Content-Type: application/force-download"); header("Content-Type: application/octet-stream"); header("Content-Type: application/download"); // use the Content-Disposition header to supply a recommended filename and // force the browser to display the save dialog. header("Content-Disposition: attachment; filename=".basename($download).";"); /* The Content-transfer-encoding header should be binary, since the file will be read directly from the disk and the raw bytes passed to the downloading computer. The Content-length header is useful to set for downloads. The browser will be able to show a progress meter as a file downloads. The content-lenght can be determines by filesize function returns the size of a file. */ header("Content-Transfer-Encoding: binary"); header("Content-Length: ".(string)($size)); readfile("$download"); ?> > I am having some trouble making it possible to download a file using the > header function. The problems are: (1) I get the dialog box to download the > file, but for some reason the type of file isn't getting passed to the box, > and (2) when I download a 4MB file it only seems to be getting 16.6KB. > > I haven't used header for this purpose before this, so maybe I am missing > something. I Googled around and found the content-disposition type I > thought I needed, I actually tried 3 different types (the file is a > compressed zip file). I Googled around for tutorials on downloading files > and still haven't found the answer to correcting my problem. Here is the > code I am using, maybe a couple more trained eyes looking at this could help > me out. > > <?php > $download = 'http://www.usa-financial.com'.urldecode( $_GET['link'] ); > $type = urldecode( $_GET['type'] ); > $size = filesize( '/home2/www/usa-financial'.urldecode( > $_GET['link'] ) ); > header("Content-type: $type"); > header("Content-Disposition: attachment; filename=$download;"); > header("Accept-Ranges: bytes"); > header("Content-Length: $size"); > > echo "<!-- $type \n $size \n $download \n -->\n"; > ?> > > Josh -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php