Blogger Information
Blog 35
fans 0
comment 0
visits 27307
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
详解文件上传
小的博客
Original
818 people have browsed it

一:文件上传需要注意的是form表单一定要有enctype="multipart/form-date";属性;input标签中的type属性一定是file;

      表单验证是当前页面:

    $_FILES是一个超全局变量可以直接调用:数组内容如下:

    1,$_FILES['myFile']['name']:客户端问价的原名称:本文相当于$_FILES['upload']['name'];

    2,$_FILES['myFile']['type']:文件的MIME类型,需要浏览器提供该信息的支持,例如:image/gif;

    3,$_FILES['myFile']['size']:已上传的文件的大小,单位为字节;

   4,$_FILES['myFile']['tmp_name']:文件被上传后在服务器端储存的临时文件名,一般四系统默认可以在php.ini的           upload_tmp_dir指定,但是putenv()函数设置是不起作用的;

   6,$_FILES['myFile']['error']:和该文件上传相关的错误代码:['error']是在php4.2.0版本中增加的,

    UPLOAD_ERR_OK=0;没有发生错误,文件上传成功:

   UPLOAD_ERR_INI_SIZE=1;上传文件超过了php.ini中upload_max_filesize选项限制的值

  UPLOAD_ERR_FORM_SIZE=2;上传文件的大小超过了html表单中MAX_FILE_SIZE选项的值

  UPLOAD_ERR_PARTIAL=3;文件只有部分被上传;

 UPLOAD_ERR_NO_FILE=4;没有文件被上传,值为5 上传文件大小为零;

QQ截图20180115143731.png

<?php
    header('Content-Type:text/html;charset=utf-8');
    /*php.inc*1,file_uploads=true;允许上传文件:
    *2,max_input_time=30;允许脚本最长运行时间
    *3,post_max_size=8M;允许脚本最长运行时间
    *4,upload_max_filesize=2M;
    允许上传的文件大小
    *5,upload_time_dir=c:;文件的临时目录,mac/linux不用设置*/
/*上传文件的所有信息都会保存到超全局变量
*/
//1,检测是否提交了表单
    if($_SERVER['REQUEST_METHOD']=='POST'){ 
    //2,检测是否上传了文件 
    if($_FILES['upload']){  
      //3,设置允许上传的文件类型 放在数组$allowed中 
    $allowed=['image/jpeg','image/png','image/JPG','image/X-PNG','image/PNG','image/x-png'];  
    //4,检测用户上传的文件类型是不是在允许的类型列表中  
    if(in_array($_FILES['upload']['type'],$allowed)){   
    //5,创建一个临时目录   
      $temFile=$_FILES['upload']['tmp_name'];   
   //6,将文件从临时目录转移到目标目录   
     if(move_uploaded_file($temFile,__DIR__ .'/../php/img/'.$_FILES['upload']['name'])){
         echo '<script>alert("文件上传成功")</script>';   
     }else{    
          echo '<script>alert("文件上传失败")</script>';   
     }  
   }else{  
         echo '<script style="color:red">上传的文件类型不允许</script>';  
    } 
 } 
     if($_FILES['upload']['error']>0){  
        switch($_FILES['upload']['error']){  
          case 1:   
          echo '<h2 style="color:red">文件上传大小超过了PHP.INI中规定的大小</h2>';   
          break;  
          case 2:   
          echo '<h2 style="color:red">文件大小超过了form表单中规定的大小</h2>';   
          break;   
          case 3:   
          echo '<h4 style="color:red">文件仅上传不完整</h4>';   
          break;   
          case 4:   
          echo '<h4 style="color:red">没有问件被上传</h4>';   
          break;   
          case 6:   
          echo '<h4 style="color:red">没有创建文件的临时文件夹</h4>';   
          break;   
          case 7:   
          echo '<h4 style="color:red">无法写入磁盘</h4>';   
          break;   
          case 8:   
          echo '<h4 style="color:red">文件上传被终止</h4>';   
          break;   
          default:   
          echo '<h4 style="color:red">意外错误请检查后重新上传</h4>';   
          break;  
        }  
        //删除临时文件 :此项可选 
        if(file_exists($temFile) && is_file($temFile)){      
             unlink($temFile);      
            }
            
       }
  }
?>
<!DOCTYPE html>
</html>
  <head>
    <title>文件上传</title>
    <link rel="stylesheet" href="../dist/css/bootstrap.css">
    <script src=" https://code.jquery.com/jquery-3.2.1.min.js">
    </script><script src="../dist/js/bootstrap.js"></script>
    <style>
    *{ padding:0; margin:0;}   
    .box{   height:400px;   width:400px;   background-color:#eee;   margin-top:100px;   padding:0;   position:relative;   }   
    .box-top{    width:400px;    height:50px;    line-height:55px;    background:skyblue;    margin-left:0px;    text-align:center;    font-weight:bold;   }
    </style>
  </head>
 </body>
   <div class="container">  
    <div class="row ">    
     <div class="col-md-4  box col-md-push-4"> 
       <form action="" method="post" enctype="multipart/form-data">  
       <div class="row box-top">
         <h4>文件上传</h4></div>
    <!--1,form标签必须设置enctype=multipart/form-data,允许多种类型数据2,input 标签的type属性必须是file类型-->   
     <div class="row" style="margin-top:20px; text-align:center;">        
      <div class="col-md-10 col-md-push-1">  
        <input type="file" name="upload" >   
         <p style="margin-top:200px">
           <input style="width:300px;" class="btn btn-primary" type="submit" value="上传文件">
         </p>  
        </div>  
      </div>  
     </div>
    </div>
   </div>
  </body>
 </form>
</html>

 

Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post