PHP实现文件上传与下载

时间:2022-08-28 09:40:16

一 文件上传


   原理:讲客户端的文件上传到服务器端,在将服务器端的临时文件移动到指定目录即可。

   客户端配置:

  1.表单页面

  2.表单的发送方式为post

     添加 enctype="multipart/form-data";


二 实例代码

  

 <form action="doAction.php" method="post" enctype="multipart/form-data" >
  	
  	请选择要上传的文件:
  	<input type="file" name="myFile"/><br>
  	<input type="submit" value="上传文件" />
  	
  </form>

请求的doAction.php


  $_FILES中保存着上传文件的信息

 $filename=$_FILES["myFile"]["name"];
 $type=$_FILES['myFile']['type'];
 $tmp_name=$_FILES['myFile']['tmp_name'];

 $size=$_FILES['myFile']['size'];
 $error=$_FILES['myFile']['error'];

//1. 将服务器上的临时文件移动指定目录下
//   move_uploaded_file($tmp_name,$destination)
//   移动成功返回 true,否则返回 false

 move_uploaded_file($tmp_name, 'uploads/'.$filename);
 
 //2. copy($src,$dst): 将文件拷贝到指定目录,拷贝成功返回true,否则返回 false
 
     copy($tmp_name, 'uploads/'.$filename);

三 $_FILES 预定义变量解析

  $_FILES:HTTP文件上传变量
  $_FILES中保存着上传文件的信息


  name :上传文件的名称
  type : 上传文件的MIME类型
  tmp_name: 上传到服务器上的临时文件名
  size: 上传文件的大小
  error:  上传文件的错误号

  move_uploaded_file 将上传的文件移动 到新位置
  copy($src,$dst): 将文件拷贝到指定目录,拷贝成功返回true,否则返回 false

  补充知识:

   PHP pathinfo()函数,返回文件路径信息。

   dirname,basename,extension
   print_r 打印变量的相关信息
   in_array() 函数搜索数组中是否存在指定的值。