Download a file from php-mysql database
To download a file stored in php-mysql database first of all we have to read the filename and check the filetype. Further we have to set the Content-Type of the file according to its filetype ( check extention ) and set appropriate headers. But you don't worry. You don't need to do anything.
Simply call the download.php file by passing filename ( which is to be downloaded ). And it works for you. That's it !! The full code is given here !!
download.php
The Html Link to download the file
<a href="download.php?file=filename.doc">Download</a>
Simply call the download.php file by passing filename ( which is to be downloaded ). And it works for you. That's it !! The full code is given here !!
download.php
<?php function download_file($file){ if (!is_file($file)) { die("404 File not found"); } //Gather relevent info about file $len = filesize($file); $name = basename($file); $ext = strtolower(substr(strrchr($name,"."),1)); //This will set the appropriate Content-Type switch( $ext ) { case "pdf": $ctype="application/pdf"; break; case "exe": $ctype="application/octet-stream"; break; case "zip": $ctype="application/zip"; break; case "doc": $ctype="application/msword"; break; case "xls": $ctype="application/vnd.ms-excel"; break; case "ppt": $ctype="application/vnd.ms-powerpoint"; break; case "gif": $ctype="image/gif"; break; case "png": $ctype="image/png"; break; case "jpeg": case "jpg": $ctype="image/jpg"; break; case "mp3": $ctype="audio/mpeg"; break; case "wav": $ctype="audio/x-wav"; break; case "mpeg": case "mpg": case "mpe": $ctype="video/mpeg"; break; case "mov": $ctype="video/quicktime"; break; case "avi": $ctype="video/x-msvideo"; break; //Following are extensions that shouldn't be downloaded case "php": case "htm": case "html": case "txt": die("Cannot be used for ". $ext ." files!"); break; default: $ctype="application/force-download"; } //Begin writing headers header("Pragma: public"); header("Expires: 0"); header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); header("Cache-Control: public"); header("Content-Description: File Transfer"); //Use the switch-generated Content-Type header("Content-Type: $ctype"); //Force the download $header="Content-Disposition:attachment;filename=".$name; header($header ); header("Content-Transfer-Encoding: binary"); header("Content-Length: ".$len); @readfile($file); exit; } //Function call $file =$_REQUEST['file']; download_file($file); ?>
The Html Link to download the file
<a href="download.php?file=filename.doc">Download</a>
Download a file from php-mysql database
Reviewed by JS Pixels
on
January 10, 2011
Rating:
Nice try , but a better explanation can be found here :-
ReplyDeletehttp://onlamp.com/pub/a/php/2000/09/15/php_mysql.html?page=3
It's very good
ReplyDeleteCode is Working good but i want to download mp4 audio ...its also downloaded but playback tells unsupported file
ReplyDeleteHow to play mp3,mp4 audio files
ReplyDelete