File downloading code is the method of downloading a file from the database, how to download a file from the database, usually uploaded file are stored in the database and how we can download it. let see, using PHP code we going to download the file. so here we must have to know the upload coding. here i'm not showing upload code, here i just show you and explain you the downloading code only. let see it. ZIP and download code

here my database field details are,
Database name --> multi
table name --> upload
column names --> id, name, type (3 columns)
the above is database structure.
DB.PHP
<?php $conn=mysql_connect("localhost","root","") or die(mysql_error()); $db=mysql_select_db("multi",$conn); ?>
INDEX.PHP
<?php include("db.php"); $fetc = "SELECT * FROM upload LIMIT 5"; $result = mysql_query($fetc); ?>
<body> <?php while($row1=mysql_fetch_array($result)) { $name=$row1['name']; $type=$row1['type']; ?> <div class="rect"> <img alt="down-icon" src="down-drop-icon.png" align="left" width="20" height="20" /> <a href="download.php?filename=<?php echo $name ;?>" > <?php echo $name ;?></a> </div> <?php } ?> </body>
select * from upload table limit to show only 5 data s. and the variable $result is fetched as array in while and echo the file name. for that file name we are giving the download link, that is from download.php.
DOWNLOAD.PHP
<?php function output_file($file, $name, $mime_type='') { if(!is_readable($file)) die('File not found or inaccessible!'); $size = filesize($file); $name = rawurldecode($name); $known_mime_types=array( "htm" => "text/html", "exe" => "application/octet-stream", "zip" => "application/zip", "doc" => "application/msword", "jpg" => "image/jpg", "php" => "text/plain", "xls" => "application/vnd.ms-excel", "ppt" => "application/vnd.ms-powerpoint", "gif" => "image/gif", "pdf" => "application/pdf", "txt" => "text/plain", "html"=> "text/html", "png" => "image/png", "jpeg"=> "image/jpg" ); if($mime_type==''){ $file_extension = strtolower(substr(strrchr($file,"."),1)); if(array_key_exists($file_extension, $known_mime_types)){ $mime_type=$known_mime_types[$file_extension]; } else { $mime_type="application/force-download"; }; }; //turn off output buffering to decrease cpu usage @ob_end_clean(); // required for IE, otherwise Content-Disposition may be ignored if(ini_get('zlib.output_compression')) ini_set('zlib.output_compression', 'Off'); header('Content-Type: ' . $mime_type); header('Content-Disposition: attachment; filename="'.$name.'"'); header("Content-Transfer-Encoding: binary"); header('Accept-Ranges: bytes'); // multipart-download and download resuming support if(isset($_SERVER['HTTP_RANGE'])) { list($a, $range) = explode("=",$_SERVER['HTTP_RANGE'],2); list($range) = explode(",",$range,2); list($range, $range_end) = explode("-", $range); $range=intval($range); if(!$range_end) { $range_end=$size-1; } else { $range_end=intval($range_end); } $new_length = $range_end-$range+1; header("HTTP/1.1 206 Partial Content"); header("Content-Length: $new_length"); header("Content-Range: bytes $range-$range_end/$size"); } else { $new_length=$size; header("Content-Length: ".$size); } /* Will output the file itself */ $chunksize = 1*(1024*1024); //you may want to change this $bytes_send = 0; if ($file = fopen($file, 'r')) { if(isset($_SERVER['HTTP_RANGE'])) fseek($file, $range); while(!feof($file) && (!connection_aborted()) && ($bytes_send<$new_length) ) { $buffer = fread($file, $chunksize); echo($buffer); flush(); $bytes_send += strlen($buffer); } fclose($file); } else //If no permissiion die('Error - can not open file.'); //die die(); } //Set the time out set_time_limit(0); //path to the file $file_path='files/'.$_REQUEST['filename']; //Call the download function with file path,file name and file type output_file($file_path, ''.$_REQUEST['filename'].'', 'text/plain'); ?>
look at the highlighted part in the above coding. from the folder name files the files are already stored and we are retrieving that.
types as store in Database
types as store in Database
"htm" => "text/html", "exe" => "application/octet-stream", "zip" => "application/zip", "doc" => "application/msword", "jpg" => "image/jpg", "php" => "text/plain", "xls" => "application/vnd.ms-excel", "ppt" => "application/vnd.ms-powerpoint", "gif" => "image/gif", "pdf" => "application/pdf", "txt" => "text/plain", "html"=> "text/html", "png" => "image/png", "jpeg"=> "image/jpg"
if the file name is extended with above all extensions. the type stored in database must by like that the above. that is important.
enjoy with demo. meet you at next tutorial.
RELATED POSTS:
Export the MySQL database table as CSV format using PHP
Marquee style in different manner with PHP and MySql
Simple Login logout system using php
Username live availability Check using php and Ajax
Comment System using PHP and MySql
Create Database with MySql and INSERT coding in php
Thank you the download coding so useful my game website
ReplyDelete$name = rawurldecode($name); pls explain this line...
ReplyDeleteDecode the url, passing with the variable name
ReplyDeleteThanks! Can I Limit A Download File?
ReplyDeleteThanks for the download coding .This is very helpful for php develops
ReplyDeletebro thanks for the code but a major problem..... file is downloading but after download the file is showing corrupted.... i have changed the
ReplyDeleteoutput_file($file_path, ''.$_REQUEST['filename'].'', 'text/plain');
to
output_file($file_path, ''.$_REQUEST['filename'].'', 'application/pdf');
to download only pdf .....
can u help me fast please....
thanks in advance.... :)
use this to all type file...
Deleteoutput_file($file_path, ''.$_REQUEST['filename'].'', 'text/plain');
lanaat ho kisi kaam ka nhe bc
ReplyDeletethank you sir this is very helpfully
ReplyDeleteit is very helpfull codings thank you
ReplyDeletethank you
ReplyDeletethank you for your code. you can also try our file upload and download system.
ReplyDeletehttp://webgeekresources.com/projects/33-web-based-file-management-system
hi everyone!
ReplyDeleteparameters $file and $name in function output_file() transmission from where?
can u help me fast please....
thanks everyone.
rawurldecode — Decode URL-encoded strings
ReplyDeletestring rawurldecode ( string $str )
Returns a string in which the sequences with percent (%) signs followed by two hex digits have been replaced with literal characters.
str--- The URL to be decoded.
Returns the decoded URL, as a string
how can i upload files using that same codes?
ReplyDeletethanks for this code
ReplyDeletereally helpful script ....
ReplyDeletethanx for sharing....
Amazing work keep doing
ReplyDeleteThanks for the code
Amazing work keep doing
ReplyDeleteThanks for the code
hello everyone...
ReplyDeletehow can i insert or select togather img and text and echo same div and if i wanna only text then echo only text and if only img then only img echo ?
so please any idea
thanks
ReplyDeleteThis code is very helpfull for php developer.
ReplyDeleteyeah this awsome tutorial...
ReplyDeletethanks master
I wan to download audio file ?? how to edit this code for audio file??Pls help
ReplyDeleteMuch Respect to you.Thanks so much for usefull code
ReplyDeletecan i use this code on wordpress site
ReplyDeleteonly one words gr8
ReplyDeletegood
ReplyDeleteI want to check the file name before uploading. The concept is first am downloading a data as a excel / csv file and then i edit the file and upload it, but what is the problem means i have to restrict the file same that menas the file name should be same as my downloaded file name.so if change name of the file the system won't take it.please help me
ReplyDelete$name = rawurldecode($name); pls explain this line..
ReplyDeleteway use the $file..
Nice posting. Really helps
ReplyDeleteWhat if I have multiple file extension. suppose like word ,excel, etc. what would be the option in that case in following section:
output_file($file_path, ''.$_REQUEST['filename'].'', 'text/plain');
Please explain.
thanks , helpfull
ReplyDeleteThanks
ReplyDeletethanks , helpfull...but can you tell me how can we upload all files all at a time.
ReplyDeleteThank you very much..but can you help me how can we download multiple files/all files all at a time..Thanks in advance
ReplyDeleteI want to download the data in PDF format from database table.
ReplyDeletebut its giving error (Notice: Undefined variable: row in C:\xampp\htdocs\pdf\generate-pdf-from-mysql-data-using-fpdf\index.php on line 12
Warning: Invalid argument supplied for foreach() in C:\xampp\htdocs\pdf\generate-pdf-from-mysql-data-using-fpdf\index.php on line 12
FPDF error: Some data has already been output, can't send PDF file)
I used the following code.
runQuery("SELECT * FROM toy");
$header = $db_handle->runQuery("SELECT `COLUMN_NAME` FROM `INFORMATION_SCHEMA`.`COLUMNS` WHERE `TABLE_SCHEMA`='blog_samples' AND `TABLE_NAME`='toy'");
require('fpdf/fpdf.php');
$pdf = new FPDF();
$pdf->AddPage();
$pdf->SetFont('Arial','B',12);
foreach($row as $rowValue) {
$data=explode(';',$rowValue);
foreach($data as $columnValue)
$pdf->Cell(90,12,$columnValue,1);
$pdf->SetFont('Arial','',12);
$pdf->Ln();
}
$pdf->Output();
?>
plz help me.
regards:
neeraj kumar
neerajkmr277@gmail.com
I want to download the data in PDF format from database table.
ReplyDeletebut its giving error (Notice: Undefined variable: row in C:\xampp\htdocs\pdf\generate-pdf-from-mysql-data-using-fpdf\index.php on line 12
Warning: Invalid argument supplied for foreach() in C:\xampp\htdocs\pdf\generate-pdf-from-mysql-data-using-fpdf\index.php on line 12
FPDF error: Some data has already been output, can't send PDF file)
I used the following code.
runQuery("SELECT * FROM toy");
$header = $db_handle->runQuery("SELECT `COLUMN_NAME` FROM `INFORMATION_SCHEMA`.`COLUMNS` WHERE `TABLE_SCHEMA`='blog_samples' AND `TABLE_NAME`='toy'");
require('fpdf/fpdf.php');
$pdf = new FPDF();
$pdf->AddPage();
$pdf->SetFont('Arial','B',12);
foreach($row as $rowValue) {
$data=explode(';',$rowValue);
foreach($data as $columnValue)
$pdf->Cell(90,12,$columnValue,1);
$pdf->SetFont('Arial','',12);
$pdf->Ln();
}
$pdf->Output();
?>
plz help me.
regards:
neeraj kumar
neerajkmr277@gmail.com
Great article and tips. which one is the best php editor for all coding use please tell..
ReplyDeleteGreat article and tips. which one is the best php editor for all coding use please tell..
ReplyDeleteits a good code
ReplyDeleteI want users to download Pdf CV when they click this button, I need Php code.
ReplyDeleteI have one query. I want download multiple file, in single click. I used for loop coiling function, It's not working. How can I do this.
ReplyDeleteIf i want to download movie and video then what to do and I want to build a webpage like youtube or mp3 songs and video then what to do plźzzzzzzz suggest me very soon
ReplyDeletethe file that is downloaded is corrupted, how to resolve that issue?
ReplyDeletethe file that is downloaded is corrupted, how to resolve that issue?
ReplyDeletehelpful code
ReplyDeletecan you solve this problam
ReplyDeleteoutput_file($file_path, ''.$_REQUEST['filename'].'', 'text/plain');
image dos't download only plain text download
hello samoe one to help when i try to ran my code it generates that error...
ReplyDeleteWarning: fopen(upload/) [function.fopen]: failed to open stream: No error in C:\wamp\www\final\download3.php on line 78
Error - can not open file.
this is line 78...."if ($file = fopen($file, 'r'))
{"
Can user upload files online. and can one use pagination with this code?
ReplyDeleteHello
ReplyDeleteCan you please tell me that multiple video download is possible on one click in php.
how about 3gp?
ReplyDeleteI hope thi8s code will work. Thanks in advance
ReplyDeletefrom the database columns what is datatype of type column ..??
ReplyDeleterespected sir i want to same code in bootstrap so please provide me same code
ReplyDeleteFile not found or inaccessible! ...can you plz help me
ReplyDeleteGood and interesting article .Thanks for sharing your post..
ReplyDeleteISTQB Certification Training in Chennai | No.1 ISTQB Exam Center in Chennai | Best ISTQB Certification Exams in Chennai