当前位置:首页 > PHP教程 > php上传下载 > 列表

PHP实现文件上传与下载

发布:smiling 来源: PHP粉丝网  添加日期:2022-03-24 11:10:37 浏览: 评论:0 

这篇文章主要为大家详细介绍了PHP实现文件上传与下载,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。

本文实例为大家分享了PHP实现文件上传与下载的具体代码,供大家参考,具体内容如下

主页index.php

  1. <html> 
  2. <head> 
  3.  <title>图片操作</title> 
  4. <style> 
  5.  #contains { 
  6.  width: 500px;  
  7.  margin: 0 auto; 
  8.  text-align: center; 
  9.  color: #0F0; 
  10.  } 
  11.  th { 
  12.  background: #ccc; 
  13.  } 
  14.  td { 
  15.  width: 150px; 
  16.  height: 50px; 
  17.  text-align: center; 
  18.  } 
  19. </style> 
  20. </head> 
  21.    
  22. <body> 
  23.  <div id="contains"
  24.  <h2>图片上传和下载</h2> 
  25.  <!----------------文件上传表单-------------> 
  26.  <form action="doupload.php" method="post" enctype="multipart/form-data"
  27.   <input type="hidden" value="10000000" /> <!---避免上传后发现文件过大---> 
  28.   <input type="file" name="pic"/> 
  29.  <input type="submit" value="上传"/> 
  30.  </form> 
  31.  <!---------------------------------------> 
  32.  <table width="500" border="0"
  33.  <tr> 
  34.   <th>序号</th><th>图片</th><th>添加时间</th><th>操作</th> 
  35.  </tr> 
  36.  <?php 
  37.   //1.打开目录 
  38.  $dir = opendir("./imgs"); 
  39.  //2.遍历目录 
  40.  $i = 0; 
  41.  $color = "#ff0"
  42.  while ($f = readdir($dir)){ //$f代表这每个文件的名字 
  43.    if ($f == '.' || $f == ".."continue//处理特殊隐藏的文件 
  44.   $i++; 
  45.   if ($i % 2 == 0) $color = "#ccc"
  46.   else $color = "#ffa"
  47.   echo "<tr bgcolor=$color>"
  48.   echo "<td>{$i}</td>"
  49.   echo "<td><img src='./imgs/{$f}' width='150' height='50'/></td>"
  50.   echo "<td>".date("Y-m-d"filectime('./imgs/'.$f))."</td>"
  51.   echo "<td><a href='./imgs/{$f}'>查看</a> 
  52.     <a href='download.php?name={$f}'>下载</a></td>"; 
  53.   echo "</tr>"
  54.  // echo $f." "; 
  55.  } 
  56.  ?> 
  57.  </table> 
  58.  </div> 
  59. </body> 
  60. </html> 

上传doupload.php

  1. <?php 
  2.  /* echo "<pre>"; 
  3.  var_dump($_FILES); 
  4.  echo "</pre>";*/ 
  5.  //1.获取上传文件信息 
  6.  $upfile = $_FILES["pic"];  
  7.  $path = "./imgs/"
  8.  //2、过滤错误信息 
  9.  if ($upfile["error"] > 0) { 
  10.  die("上传文件错误"); 
  11.  } 
  12.  //3、本次上传文件的大小过滤  
  13.  if ($upfile["size"] > 10000000) { 
  14.  die("上传文件超出限制"); 
  15.  } 
  16.  //4、处理文件类型 
  17.  $typelist = array("jpeg","jpg","png","gif"); 
  18.  $arr = explode("."basename($upfile['name'])); //以'.'分割字符串为数组 
  19.  $bz = array_pop($arr); //获取文件的后缀名 
  20.  if (!in_array($bz$typelist)) { //如果给定的值 value 存在于数组 array 中则返回 true 
  21.  die("上传文件类型非法!".$upfile["type"]); 
  22.  } 
  23.  //5、设置相同文件的名字不同 
  24.  $newfile = date("YmdHis").rand(100, 999).".".$bz
  25.  // 
  26.  if (is_uploaded_file($upfile["tmp_name"])) { //判断文件是否是通过post上传 
  27.  //执行文件上传 
  28.  if (move_uploaded_file($upfile["tmp_name"], $path.$newfile)) {//将上传的文件保存在新位置 
  29.   echo "上传成功!"
  30.  echo "<a href='index.php'>浏览</a>"
  31.  }else { 
  32.   die("上传失败"); 
  33.  } 
  34.  } 
  35. ?> 

下载download.php

  1. <?php
  2.  //1.获取于要下载的文件名 
  3.  $file = "./imgs/".$_GET["name"]; 
  4. // echo $file; 
  5.  //2.重设响应类型 
  6.  $info = getimagesize($file); //获取文件大小 
  7.  // var_dump($info); 
  8.  header("Content-Type:".$info["mime"]); 
  9.  //3.执行下载文件名 
  10.  header("Content-Disposition:attachment;filename=".$_GET["name"]); 
  11.  //4.指定文件大小 
  12.  header("Content-Length:".filesize($file)); 
  13.  //5.响应内容 
  14.  readfile($file); 
  15. ?>

Tags: PHP文件上传

分享到: