I have a file
/file.zip
A user comes to
/download.php
I want the user’s browser to start downloading the file. How do i do that? Does readfile open the file on server, which seems like an unnecessary thing to do. Is there a way to return the file without opening it on the server?
Advertisement
Answer
I think you want this:
$attachment_location = $_SERVER["DOCUMENT_ROOT"] . "/file.zip"; if (file_exists($attachment_location)) { header($_SERVER["SERVER_PROTOCOL"] . " 200 OK"); header("Cache-Control: public"); // needed for internet explorer header("Content-Type: application/zip"); header("Content-Transfer-Encoding: Binary"); header("Content-Length:".filesize($attachment_location)); header("Content-Disposition: attachment; filename=file.zip"); readfile($attachment_location); die(); } else { die("Error: File not found."); }