欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

PHP+Ajax異步帶進(jìn)度條上傳文件實(shí)例

 更新時間:2016年11月01日 08:41:53   作者:myxp  
這篇文章主要介紹了PHP+Ajax異步帶進(jìn)度條上傳文件實(shí)例代碼,代碼簡單易懂,非常不錯,具有參考借鑒價值,需要的朋友可以參考下。

最近項(xiàng)目中要做一個帶進(jìn)度條的上傳文件的功能,學(xué)習(xí)了Ajax,使用起來比較方便,將幾個方法實(shí)現(xiàn)就行。

前端引入文件

<link rel="stylesheet" >
<script src="http://apps.bdimg.com/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="http://malsup.github.com/jquery.form.js"></script>

Ajax進(jìn)度條異步處理

<script type="text/javascript">
$(function () {
   $("#myupload").ajaxForm({
     dataType:'json',
     beforeSend:function(){ 
         $(".progress").show();
     },
     uploadProgress:function(event,position,total,percentComplete){
         var percentVal = percentComplete + '%';
         $(".progress-bar").width(percentComplete + '%');
         $(".progress-bar").html(percentVal);
         $(".sr-only").html(percentComplete + '%');
     },
     success:function(data){
         $(".progress").hide();
      
         if(data.error == "empty_name"){
             alert("文件上傳非法,上傳失敗!");
             exit();
         };
         if(data.error == "large"){
             alert("圖片上傳不能大于2M,上傳失敗!");
             exit();
         };
  
 /*alert(data.error);*/
         if(data.error == "format"){
             alert("圖片格式錯誤,上傳失敗");
             //alert(data.type);
             exit();
         };
  
         //alert("上傳成功!");
         //files.html("<b>"+data.name+"("+data.size+"k)</b> <span class='delimg' rel='"+data.pic+"'>刪除</span>");
         $(".files").html("文件名: "+data.name+"<span class='delimg' rel='"+data.pic+"'>  del  </span>大?。?+data.size);
         var img = "http://www.sandleft.com/test/input/upload/files/"+data.pic;
         $(".showimg").html("<img src='"+img+"'>");
         alert("上傳成功!");
     },
     error:function(){
         alert("圖片上傳失敗");
     }
      
   });
   $(".progress").hide();
});
 
</script>

前端上傳HTML

<div class="uk-container uk-container-center">
 
        <div class="pk-system-messages"></div>
 
        <h1 class="uk-h2 uk-text-center" style="margin-top:-100px;">文件上傳</h1>
        <div class="pk-system-messages"></div>
 
         <div class="container-main">
          <h1>Ajax Image Uploader</h1>
          <p>A simple tutorial to explain image uploading using jquery ajax and php</p>
  
           <form id='myupload' action='new_upload.php' method='post' enctype='multipart/form-data'>
            <label for="file">Filename:</label>
           <input type="file" name="mypic" id="file"><br>
           <input type="submit" name="upload" class="btn btn-success" value="upload">
          </form>
  
            <div class="progress">
             <div class="progress-bar progress-bar-success progress-bar-striped" role="progressbar" aria-valuenow="45" aria-valuemin="0" aria-valuemax="100" style="width: 0%">
              <span class="sr-only">0% Complete</span>
           </div>
           </div>
          <div class="files"></div>
          <div class="showimg"></div>
         </div>
         
       </div>

PHP文件上傳類

<?php
class upload{
 
  protected $file_path = "files"; //當(dāng)前files存儲文件夾
  #protected $file_size = 1024000;
  protected $file_size = 5120000; //5M 用戶上傳
  //檢測文件是否為空
 public function check_file($get_file)
 {
    if (empty($get_file))
    {
     $type = "check_file";
       $arr = array('error'=>'empty_name','type'=>$type);
       echo json_encode($arr);
       exit();
    }
  return true;
}
 
 
 //檢測文件類型
 public function check_type($get_type)
 {
   if (( $get_type == ".docx" ) || ( $get_type == ".doc" )) {
      #$types = $get_type;
   }else{
      $type = "check_type";
      $arr = array('error'=>'format','type'=>$type);
        echo json_encode($arr);
        exit(); 
 
   }
  return true;
 }
 
 //檢測文件大小
 public function check_size($get_file)
 {
   if ( $get_file != "" ) {
      if ( $get_file > $this->file_size ) {
          $arr = array('error'=>'large');
          echo json_encode($arr);
          exit();
      }
  }else{
    return false;
    exit();
  }
 return true;
 }
  
//文件保存
 public function save_file($file_type,$file_tmp_name)
 {
  $rand = rand(1000, 9999);
  $pics = date("YmdHis") . $rand . $file_type;
  $path = $this->file_path."/".$pics;
  $result = move_uploaded_file($file_tmp_name, $path);
  if($result){
    return $pics;
  }else{
    return false;
    exit();
  }
  #return $pics;
 }
 
}
PHP文件上傳處理
<?php
include("upload.class.php");
$up_obj = new upload();
 
$get_fileName = $_FILES['mypic']['name'];
$get_fileSize = $_FILES['mypic']['size'];
$get_TmpFiles = $_FILES['mypic']['tmp_name'];
 
$get_fileType = strstr($get_fileName, '.');
 
$check_result = $up_obj->check_file($get_fileName);
 
if($check_result){
 
  //檢查文件類型
  $result_type = $up_obj->check_type($get_fileType);
 
  //檢查文件大小
  if($result_type){
 
    $result_size = $up_obj->check_size($get_fileSize);
 
    if($result_size){
      //文件上傳保存  
      $pics = $up_obj->save_file($get_fileType,$get_TmpFiles);   
      $size = round($get_fileSize/1024,2);
          $arr = array(
            'name' => $get_fileName,
             'pic' => $pics,
             'size'=> $size,
             'error' => 2
         );
 
       //檢查文件上傳狀態(tài)
       if($pics){
         echo json_encode($arr);
         /*
         執(zhí)行上傳完成邏輯.....
         */
      }   
    }
  }
 
}

文件上傳效果如圖:

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 深入理解PHP JSON數(shù)組與對象

    深入理解PHP JSON數(shù)組與對象

    很多朋友很郁悶JSON數(shù)據(jù)中有時格式不定,一會兒是數(shù)組,一會兒是對象,怎么回事呢?下面小編給大家?guī)砹藀hp json數(shù)組與對象的相關(guān)知識,非常不錯,具有參考借鑒價值,感興趣的朋友一起看下吧
    2016-07-07
  • 告訴你如何破解PHP單繼承魔咒

    告訴你如何破解PHP單繼承魔咒

    這篇文章主要給大家介紹了關(guān)于如何破解PHP單繼承魔咒的相關(guān)資料,Trait?是為類似?php?的單繼承語言而準(zhǔn)備的一種代碼復(fù)用機(jī)制,文中通過圖文以及實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-02-02
  • laravel 之 Eloquent 模型修改器和序列化示例

    laravel 之 Eloquent 模型修改器和序列化示例

    今天小編就為大家分享一篇laravel 之 Eloquent 模型修改器和序列化示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-10-10
  • php生成二維碼

    php生成二維碼

    隨著科技的發(fā)展,二維碼無處不在,特別是在智能手機(jī)時代二維碼更活躍,下面小編通過兩種方法給大家介紹利用php生成二維碼,需要的朋友可以參考下
    2015-08-08
  • Symfony查詢方法實(shí)例小結(jié)

    Symfony查詢方法實(shí)例小結(jié)

    這篇文章主要介紹了Symfony查詢方法,結(jié)合實(shí)例形式總結(jié)分析了createQuery與getQuery查詢數(shù)據(jù)的具體使用技巧,需要的朋友可以參考下
    2017-06-06
  • PHP仿qq空間或朋友圈發(fā)布動態(tài)、評論動態(tài)、回復(fù)評論、刪除動態(tài)或評論的功能(上)

    PHP仿qq空間或朋友圈發(fā)布動態(tài)、評論動態(tài)、回復(fù)評論、刪除動態(tài)或評論的功能(上)

    我們大部分人都發(fā)過動態(tài),想必都知道發(fā)動態(tài)、回復(fù)評論、刪除動態(tài)的整個過程,那么這個功能是如何實(shí)現(xiàn)的呢?下面小編給大家?guī)砹藢?shí)例代碼,對PHP仿qq空間或朋友圈發(fā)布動態(tài)、評論動態(tài)、回復(fù)評論、刪除動態(tài)或評論的功能感興趣的朋友,一起學(xué)習(xí)吧
    2017-05-05
  • php中字符串和整數(shù)比較的操作方法

    php中字符串和整數(shù)比較的操作方法

    這篇文章主要介紹了php中字符串和整數(shù)比較的操作方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-06-06
  • Laravel框架下的Contracts契約詳解

    Laravel框架下的Contracts契約詳解

    這篇文章主要介紹了解析Laravel框架下的Contracts契約 ,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-03-03
  • php讀取大文件示例分享(文件操作類)

    php讀取大文件示例分享(文件操作類)

    這篇文章主要介紹了php讀取大文件示例,這也是一個文件操作類,同時可以學(xué)習(xí)一下php的文件操作方法,需要的朋友可以參考下
    2014-04-04
  • php提示Call-time pass-by-reference has been deprecated in的解決方法[已測]

    php提示Call-time pass-by-reference has been deprecated in的解決方法

    今天一個客戶配置服務(wù)器的時候出現(xiàn)了這個問題,主要是因?yàn)樗x錯php.ini的問題,默認(rèn)先dist那個比較好,實(shí)際應(yīng)用就選擇這個
    2012-05-05

最新評論