您的位置:首页 > 编程语言 > PHP开发

php文件上传(1)

2016-10-31 09:15 183 查看
文件上传

   上传: 文件从浏览器端传输到服务器端.

   

   浏览器与服务器的交互方式:

      请求:
     
 响应:
 

   结论: 文件上传是发生在请求阶段.

   

   

   

   流程如下:

   

      建立html文件

  <form action="upload.php" method="post">

  文件名: <input type="text" name="filename" />

  <br/>

  文件: <input type="file" name="filedata" />

  <br/>

  <input type="submit" name="提交" />

 

  </form>

  

  

  以上过程

     当服务器php程序,接受到浏览器post请求时,会将所有接受的
字符串数据存储到$_POST中
**当浏览器需要上传文件时,
表单中的数据类型共有两种:字符串和文件型
但是:默认情况下,浏览器会将表单中的数据存在多种类型
 
如果需要上传文件在需要在表单上添加
enctype="multipart/form-data";

  php程序接受到文件时,接受到文件类型的post数据处理?

     该文件会被保存在服务器的临时文件下,
该临时文件的生命周期就是脚本的声明周期,
 
php需要做的工作?
  在临时文件消失前,将其持久性存储!
通过函数:
  Move_uploaded_file(临时文件地址,目的文件地址); 保存文件
 

我们通过$_FILE 来获得上传文件的信息.

     每个file元素,包括下面

     name

     type

     tmp_name 中间名

     

-----------------------------典型的上传实现--------------

需要判断:

   是否存在错误,

   类型是否符合要求,大小是否符合要求

   目标文件生成合理的名字

   

   

   编码实现

      判断文件类型: 两种表示方法;
 后缀名(.jpg) 和 MIME(image/jpeg)
 
 
 MIME: TEXT/html,image.jpeg;
 MIME的意思是:多用途互联网邮件扩展.

    建议使用uniqid,给文件取名,然后将\   

     $prefix = '';

     uniqid($prefix,true).$ext;

       

    

文件函数的功能:
  if(is_dir($path))
  {
      做事
  }
  else
  {
      mkdir($path);
  }

    PHP检测文件的MIME类型.

       PHP提供了fileinfo相关函数来完成

开启fileinfo扩展,需要在php.ini中打开

  重启apache

     $file = './ceshi.txt.jpg';
$fileinfo = new Finfo(FILEINFO_MIME_TYPE);
 
$mime_type = $fileinfo->file($file);
echo $mime_type;
 

    is_uploaded_file();

     判断临时文件,是否为真实的上传文件.

 
 

  

  

   

      
  
  

 

     
 
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: