473,400 Members | 2,145 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,400 software developers and data experts.

how to download a file using php?

127 100+
this is my upload.php

Expand|Select|Wrap|Line Numbers
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <title>File Upload</title>
  6. </head>
  7. <?php
  8.  
  9. include('config.php');
  10.  
  11. ?>
  12. <body>
  13. <?php
  14. /*if ((($_FILES["file"]["type"] == "/doc")
  15. || ($_FILES["file"]["type"] == "image/jpeg")
  16. || ($_FILES["file"]["type"] == "image/pjpeg"))
  17. && ($_FILES["file"]["size"] < 66000))*/
  18. if(($_FILES["file"]["size"] < 66000) && ($_FILES["file"]["type"] == "application/msword") )
  19.   {
  20.   if ($_FILES["file"]["error"] > 0)
  21.     {
  22.     echo "Return Code: " . $_FILES["file"]["error"] . "<br />";
  23.     }
  24.   else
  25.     {
  26.     echo "Upload: " . $_FILES["file"]["name"] . "<br />";
  27.     echo "Type: " . $_FILES["file"]["type"] . "<br />";
  28.     echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
  29.     echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br />";
  30.  
  31.     if (file_exists("upload/" . $_FILES["file"]["name"]))
  32.       {
  33.       echo $_FILES["file"]["name"] . " already exists. ";
  34.       }
  35.     else
  36.       {
  37.       move_uploaded_file($_FILES["file"]["tmp_name"],
  38.       "upload/" . $_FILES["file"]["name"]);
  39.       echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
  40.  
  41.         $filename = $_FILES["file"]["name"]; 
  42. $filetype = $_FILES["file"]["type"];
  43. $filesize = $_FILES["file"]["size"];
  44. $tempfile = $_FILES["file"]["tmp_name"];
  45.  
  46.       $query="insert into resume_upload (name, type, size,tmp_name) values ( '$filename','$filetype','$filesize','$tempfile' )";
  47.  
  48. mysql_query($query);
  49. $candidatename = $_POST['cname'];
  50. $gender = $_POST['gen'];
  51. $email = $_POST['email'];
  52. $phone = $_POST['ph'];
  53. $qualification = $_POST['qual'];
  54. $experience = $_POST['exp'];
  55. $skills = $_POST['skills'];
  56. $industry =$_POST['indus'];
  57.  
  58. $query1="insert into candidate (cname, gen, email, ph, qual, exp, skills, indus, res_title ) values ( '$candidatename','$gender','$email','$phone' ,'$qualification','$experience','$skills','$industry','$filename' )";
  59.  
  60. mysql_query($query1);
  61.  
  62. echo "<br>";
  63. echo "File Details stored in database";
  64.  
  65.       }
  66.  
  67.     }
  68.   }
  69. else
  70.   {
  71.   echo "Invalid file. Please Upload Word Document";
  72.   }
  73. ;
  74. ?> 
  75. </body>
  76. </html>
  77.  
  78.  
document is succesfully uploading to a specific folder. now i want to download the document from that folder.

this is my search.php code
Expand|Select|Wrap|Line Numbers
  1. <?php
  2.  
  3. include('lock.php');
  4. include("config.php");
  5.  
  6.  
  7.  
  8.   $var = @$_GET['q'] ;
  9.   $trimmed = trim($var); 
  10.  
  11. // rows to return
  12. $limit=10; 
  13.  
  14.  
  15. if ($trimmed == "")
  16.   {
  17.   echo "<p>Please enter a search...</p>";
  18.   exit;
  19.   }
  20.  
  21.  
  22. /*if (!isset($var))
  23.   {
  24.   echo "<p>We dont seem to have a search parameter!</p>";
  25.   exit;
  26.   }*/
  27.  
  28. $query = "select * from candidate where cname like \"%$trimmed%\" ||  skills like \"%$trimmed%\" ||   exp like \"%$trimmed%\" || indus like \"%$trimmed%\" || qual like \"%$trimmed%\" ORDER BY cid ";
  29.  
  30.  $numresults=mysql_query($query);
  31.  $numrows=mysql_num_rows($numresults);
  32.  
  33.  
  34. if ($numrows == 0)
  35.   {
  36.   echo "<h4>Results</h4>";
  37.   echo "<p>Sorry, your search: &quot;" . $trimmed . "&quot; returned zero results</p>";
  38.  
  39.  }
  40.  
  41.  
  42.   if (empty($s)) {
  43.   $s=0;
  44.   }
  45.  
  46.  
  47.   $query .= " limit $s,$limit";
  48.   $result = mysql_query($query) or die("Couldn't execute query");
  49.  
  50.  
  51. echo "<p>You searched for: &quot;" . $var . "&quot;</p>";
  52.  
  53.  
  54. echo "Results";
  55. echo "<br>";
  56. $count = 1 + $s ;
  57. echo "<center>";
  58. echo "<table CELLPADDING=10 border =1 bgcolor='lightgrey'>";
  59. echo "<tr>";
  60. echo "<th>Candidate Name</th>";
  61. echo "<th>Email Id</th>";
  62. echo "<th>Qualification</th>";
  63. echo "<th>Experience</th>";
  64. echo "<th>Skills</th>";
  65. echo "<th>Resume</th>";
  66.  
  67.   while ($row= mysql_fetch_array($result)) {
  68.  ?>
  69.    <tr>
  70.              <td> <?php echo $row["cname"]; ?></td>
  71.              <td><?php echo $row["email"]; ?></td>
  72.              <td><?php echo $row["qual"]; ?></td>
  73.              <td><?php echo $row["exp"]; ?></td>
  74.              <td><?php echo $row["skills"]; ?></td>
  75.              <td>
  76.              <?php echo ( '<img src="download.gif" /><a href="download.php">Download</a>' ); ?>
  77.              </td><td>
  78.            <?php 
  79.            /*$pid= '$_GET[pid]';
  80.            echo ( '<img src="edit.ico" /><a href="download.php?pid=".$pid."\">Download</a>');*/?>
  81.            </td>
  82. </tr> 
  83. <?php
  84.  
  85.   }
  86.  
  87. $currPage = (($s/$limit) + 1);
  88.  
  89.  
  90.   echo "<br />";
  91.  
  92.  
  93.   if ($s>=1) { 
  94.   $prevs=($s-$limit);
  95.   print "&nbsp;<a href=\"$PHP_SELF?s=$prevs&q=$var\">&lt;&lt; 
  96.   Prev 10</a>&nbsp&nbsp;";
  97.   }
  98.  
  99.  
  100.   $pages=intval($numrows/$limit);
  101.  
  102.  
  103.  
  104.   if ($numrows%$limit) {
  105.  
  106.   $pages++;
  107.   }
  108.  
  109.  
  110.   if (!((($s+$limit)/$limit)==$pages) && $pages!=1) {
  111.  
  112.  
  113.   $news=$s+$limit;
  114.  
  115. echo "&nbsp;<a href=\"$PHP_SELF?s=$news&q=$var\">Next &gt;&gt;</a>";
  116.   }
  117.  
  118. $a = $s + ($limit) ;
  119.   if ($a > $numrows) { $a = $numrows ; }
  120.   $b = $s + 1 ;
  121.   echo "<p>Showing results $b to $a of $numrows</p>";
  122.  
  123. ?>
  124.  
  125.  
  126. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  127. <html xmlns="http://www.w3.org/1999/xhtml">
  128. <head>
  129. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  130. <title>Search Results</title>
  131. </head>
  132.  
  133. <body>
  134. </body>
  135. </html>
  136.  
in this [code]echo ( '<img src="edit.ico" /><a href="download.php?pid=".$pid."\">download</a>');*/?>[code]
when i click this the download link it must download the
resume doc from 'upload' folder...

plz help?
Jul 29 '10 #1
12 3398
johny10151981
1,059 1GB
I developed this script to download CSV file from server (also i got suggestion from other site i cant recall the name)

Expand|Select|Wrap|Line Numbers
  1. <?php
  2.  
  3.  if($_GET['filename']==NULL)
  4.  {
  5.   //print_r($_GET);
  6.   error_mail($mail_to,"Unexpected page access above ".__LINE__." in File ".__FILE__,__LINE__." in ".__FILE__);//function to send error message to the developer
  7.   echo "<message>file name missing </message>";
  8.   exit;
  9.  }
  10.  
  11.  $filename=$_GET['filename'];
  12. // error_mail($mail_to,"filename is".$filename,__LINE__." in ".__FILE__);
  13.  if(file_exists("csv_download/".$filename)==false)
  14.  {
  15.   error_mail($mail_to,"Unexpected file missing above ".__LINE__." in File ".__FILE__."\nMissing File Name: csv_download/".$filename,__LINE__." in ".__FILE__);
  16.   echo "<message>file missing in the server</message>"; 
  17.   exit;
  18.  }
  19.  
  20.  
  21.  $rfilename = realpath("csv_download/".$filename); //server specific
  22.  
  23.  $file_extension = strtolower(substr(strrchr($rfilename,"."),1));
  24.  
  25.  switch( $file_extension )
  26.  {
  27.   case "pdf": $ctype="application/pdf"; break;
  28.   case "exe": $ctype="application/octet-stream"; break;
  29.   case "zip": $ctype="application/zip"; break;
  30.   case "doc": $ctype="application/msword"; break;
  31.   case "xls": $ctype="application/vnd.ms-excel"; break;
  32.   case "ppt": $ctype="application/vnd.ms-powerpoint"; break;
  33.   case "gif": $ctype="image/gif"; break;
  34.   case "png": $ctype="image/png"; break;
  35.   case "jpe": case "jpeg":
  36.   case "jpg": $ctype="image/jpg"; break;
  37.   default: $ctype="application/force-download";
  38.  }
  39.  
  40.  header("Pragma: public"); // required
  41.  header("Expires: 0");
  42.  header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
  43.  header("Cache-Control: private",false); // required for certain browsers
  44.  header("Content-Type: $ctype");
  45.  header("Content-Disposition: attachment; filename=".$filename.";" );
  46.  header("Content-Transfer-Encoding: binary");
  47.  header("Content-Length: ".@filesize($rfilename));
  48.  @readfile("$rfilename");
  49.  unlink($rfilename);            //to delete the file after dwonload
  50. ?>
  51.  
hope this will help

Regards,
Johny
Jul 29 '10 #2
impin
127 100+
@johny10151981
thanks buddy. its works. i am able to download the file. but i cant read the contents. when i try open the word document it shows an error msg " MS word needs a converter to display the file correctly".... why i am getting this msg....
Jul 29 '10 #3
johny10151981
1,059 1GB
hard to explain without examine. Can you manually download the file and try to read?
Please also post the download link so that i can see what in side.
Jul 29 '10 #4
impin
127 100+
@johny10151981
its just a simple word file. Resume Document... it contains only text...
Jul 29 '10 #5
impin
127 100+
similarly i cant view the picture too...

No preview available... error.

but that word doc and image file are stored in the folder 'upload'. if i go to that folder and open those files it working. i can view the content.

if i download those file using php, then the downloaded files are not working.... i used the code what u have suggested above...

the word document is not a csv file... its a normal word document....
Jul 29 '10 #6
johny10151981
1,059 1GB
I found the reason,
Give me time to sort it out :)
Jul 29 '10 #7
johny10151981
1,059 1GB
Make sure the very first characters are
<?php

and the very last characters are
?>

And Make sure you didnt print any data anyway
no print_r or print or echo or anything otherwise your data must get destroyed
Jul 29 '10 #8
impin
127 100+
@johny10151981
i used echo to just print an error mgs if the file not in the folder...
Jul 29 '10 #9
johny10151981
1,059 1GB
There is space above your
<?php
or
after
?>

I have checked again. It download file very well
Jul 30 '10 #10
impin
127 100+
this is my code download.php

Expand|Select|Wrap|Line Numbers
  1. <?php
  2. include('config.php');
  3. $filename = @$_GET['id'] ;
  4.   echo "$filename";
  5.  
  6.      if('$filename'==NULL)
  7.      {
  8.           echo "<message>file name missing </message>";
  9.       exit;
  10.      }
  11.  
  12.  
  13.   if(file_exists("upload/".$filename)==false)
  14.   {
  15.     echo "<message>file missing in the server</message>"; 
  16.     exit;
  17.     }
  18.  
  19.  
  20.   $rfilename = realpath("upload/".$filename); //server specific
  21.  
  22.   $file_extension = strtolower(substr(strrchr($rfilename,"."),1));
  23.  
  24.     switch( $file_extension )
  25.     {
  26.     case "pdf": $ctype="application/pdf"; break;
  27.      case "exe": $ctype="application/octet-stream"; break;
  28.      case "zip": $ctype="application/zip"; break;
  29.     case "doc": $ctype="application/msword"; break;
  30.    case "xls": $ctype="application/vnd.ms-excel"; break;
  31.     case "ppt": $ctype="application/vnd.ms-powerpoint"; break;
  32.     case "gif": $ctype="image/gif"; break;
  33.      case "png": $ctype="image/png"; break;
  34.      case "jpe": case "jpeg":
  35.     case "jpg": $ctype="image/jpg"; break;
  36.      default: $ctype="application/force-download";
  37.     }
  38.  
  39.     header("Pragma: public"); // required
  40.     header("Expires: 0");
  41.     header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
  42.     header("Cache-Control: private",false); // required for certain browsers
  43.     header("Content-Type: $ctype");
  44.     header("Content-Disposition: attachment; filename=".$filename.";" );
  45.     header("Content-Transfer-Encoding: binary");
  46.     header("Content-Length: ".@filesize($rfilename));
  47.   @readfile("$rfilename");
  48.     //unlink($rfilename);            //to delete the file after dwonload
  49. ?>
  50.  
  51.  
  52.  
  53.  
  54.  
Jul 30 '10 #11
impin
127 100+
its now working buddy. thanks.
i used
Expand|Select|Wrap|Line Numbers
  1. echo "$filename"; 
inside the code. thats why i am not getting the correct contents. i remove that code,now its working.... thank you!
Jul 30 '10 #12
johny10151981
1,059 1GB
I can see there is 5 new line after your
?>
it would change the content of the file. to make sure check the file size in the server and the file size that you upload i guess you will get few bytes differetn
Jul 30 '10 #13

Sign in to post your reply or Sign up for a free account.

Similar topics

1
by: ASP Spam Fighter | last post by:
Hello all, I don't know how to get around this one... If anybody can help me with this problem, I would appreciate it very much. I've been trying to send a (large) file to the browser via a...
1
by: Vasu | last post by:
Hi, I have a requirement to download a file from the web site using a client tool. Iam writing a C# program to download using WebRequest, HttpRequest, WebResponse and so on. The problem...
0
by: Killingkids | last post by:
hello, everyone...im facing a big problem in my final year project, hope that u all can help me solve the problem ... i was doing a mobile web application which enable student to check the college...
0
by: Killingkids | last post by:
hello, everyone...im facing a big problem in my final year project, hope that u all can help me solve the problem ... i was doing a mobile web application which enable student to check the college...
3
by: Geethu03 | last post by:
In my application i want to download the files in web by using the java or JSP program. please help me to do this program. Thanks and Regards, Geethu.
35
by: keerthyragavendran | last post by:
hi i'm downloading a single file using multiple threads... how can i specify a particular range of bytes alone from a single large file... for example say if i need only bytes ranging from...
3
by: cypherkro | last post by:
Hi I have a requirement to automatically download a file using a WebBrowser control without having the "Download File" pop up windows display. I cannot use Webclient!! I am using VS2005, .net2...
4
by: pplers | last post by:
I have a list of files (zip, rar) that require cookies to download them. So i would like to know how to do it....
5
by: vinodkus | last post by:
dear sir/madam I have to write a code for download file using asp. please help me thanks in advance
3
colinod
by: colinod | last post by:
I am trying to get my site to download mp3 files without having to right click - save as on a link. I have found this code, which works as long as the file names are short, if they get a bit long it...
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
0
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...
0
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each...
0
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing,...
0
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.