麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 編程 > JavaScript > 正文

jquery+ajax實(shí)現(xiàn)上傳圖片并顯示上傳進(jìn)度功能【附php后臺(tái)接收】

2019-11-19 11:23:12
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

本文實(shí)例講述了jquery+ajax實(shí)現(xiàn)上傳圖片并顯示上傳進(jìn)度功能。分享給大家供大家參考,具體如下:

jquery上傳文件用的formdata,上傳進(jìn)度條需要添加xhr的onprogress

html代碼如下:

<!DOCTYPE html><html lang="zh-CN"><head>  <meta charset="UTF-8">  <meta http-equiv="X-UA-Compatible" content="IE=edge">  <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">  <title>Ding Jianlong Html</title>  <link  rel="external nofollow" rel="stylesheet">  <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>  <script src="https://cdnjs.cloudflare.com/ajax/libs/layer/2.3/layer.js"></script></head><body> <!-- 外層div 進(jìn)度條的整體視覺(jué)和位置設(shè)置 -->  <div style="width:300px;height: 20px;border: 1px solid #CCC;">  <!-- 內(nèi)層div 逐漸遞增的進(jìn)度條 -->    <div id="jdt" style="height: 20px;"></div>  </div>  <p>總大小<span id="total"></span>;已上傳<span id="loaded"></span>;</p><br>  <form id="mainForm">    選擇文件:<input type="file" name="file">    <input type="button" value="上傳" onclick="upload()">  </form><script>  var uploading = false; function upload(){    //首先封裝一個(gè)方法 傳入一個(gè)監(jiān)聽(tīng)函數(shù) 返回一個(gè)綁定了監(jiān)聽(tīng)函數(shù)的XMLHttpRequest對(duì)象    var xhrOnProgress=function(fun) {      xhrOnProgress.onprogress = fun; //綁定監(jiān)聽(tīng)      //使用閉包實(shí)現(xiàn)監(jiān)聽(tīng)綁      return function() {        //通過(guò)$.ajaxSettings.xhr();獲得XMLHttpRequest對(duì)象        var xhr = $.ajaxSettings.xhr();        //判斷監(jiān)聽(tīng)函數(shù)是否為函數(shù)        if (typeof xhrOnProgress.onprogress !== 'function')          return xhr;        //如果有監(jiān)聽(tīng)函數(shù)并且xhr對(duì)象支持綁定時(shí)就把監(jiān)聽(tīng)函數(shù)綁定上去        if (xhrOnProgress.onprogress && xhr.upload) {          xhr.upload.onprogress = xhrOnProgress.onprogress;        }        return xhr;      }    }    var data = new FormData($('#mainForm')[0]); //要加【0】    console.log(data);    if(uploading){      layer.alert("文件正在上傳中,請(qǐng)稍候");      return false;    }    $.ajax({      type: 'POST',      url: 'upload_file.php',  //當(dāng)前路徑      data: data,      dataType: 'json',      processData: false,  //序列化,no      contentType: false,  //不設(shè)置內(nèi)容類型      beforeSend: function(){        uploading = true;      },      //進(jìn)度條要調(diào)用原生xhr      xhr:xhrOnProgress(function(evt){        var percent = Math.floor(evt.loaded / evt.total*100);//計(jì)算百分比        console.log(percent);        // 設(shè)置進(jìn)度條樣式        $('#jdt').css('width',percent * 3 + 'px');        $('#jdt').css('background','skyblue');        //顯示進(jìn)度百分比        $('#jdt').text(percent+'%');        $('#loaded').text(evt.loaded/1024 + 'K');        $('#total').text(evt.total/1024 + 'K');      }),      success: function (data) {        if (data.code == 200) {          layer.msg(data.message, {icon: 1, time: 1000});          //成功后關(guān)閉修改頁(yè)          setTimeout(function(){            var index = parent.layer.getFrameIndex(window.name); //先得到當(dāng)前iframe的索引            parent.layer.close(index);  //在執(zhí)行關(guān)閉          } ,2000);          //還有刷新下iframe的界面          parent.location.reload();        } else {          layer.msg(data.message, {icon: 2, time: 3000});        }        uploading = false;      },      error: function (data) {        alert('服務(wù)異常,請(qǐng)稍后重試');        console.log(data);      }    });  }</script></body></html>

php代碼如下:

<?phpheader('content-type:text/html;charset=utf-8');if ($_FILES["file"]["error"] > 0){ echo "Return Code: " . $_FILES["file"]["error"] . "<br />";}else{ // 文件中文轉(zhuǎn)碼 //iconv('utf-8', 'gbk', $_FILES["file"]["name"]);  //取出后綴名  $ext = strrchr($_FILES["file"]["name"],'.');  move_uploaded_file($_FILES["file"]["tmp_name"],   "upload/" . uniqid() . $ext);  $arr['code'] = 666;  $arr['message'] = "已經(jīng)保存到: " . "upload/" . uniqid() . $ext;  echo json_encode($arr);die;}

參考資料: http://www.companysz.com/article/94853.htm

更多關(guān)于jQuery相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《jquery中Ajax用法總結(jié)》、《jQuery擴(kuò)展技巧總結(jié)》、《jQuery常用插件及用法總結(jié)》、《jQuery常見(jiàn)經(jīng)典特效匯總》及《jquery選擇器用法總結(jié)

希望本文所述對(duì)大家jQuery程序設(shè)計(jì)有所幫助。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 国产一区二区免费看 | 欧美黑人xx | 国产98色| 黑人日比视频 | 亚洲午夜精选 | 国产妇女乱码一区二区三区 | 欧美黄色大片免费观看 | 7777奇米成人四色影视 | 久久精品视频首页 | 国产色爱综合网 | 久久狠狠高潮亚洲精品 | 久草干| av电影免费播放 | 黄色片在线免费播放 | 久久久久久久免费看 | 九色com | 国内精品久久久久久2021浪潮 | 久久久成人精品视频 | 狼伊千合综网中文 | 久久精品小短片 | 天天看成人免费毛片视频 | 午夜视频在线观看免费视频 | 欧美人人干 | 特级黄色影院 | 日本在线视频免费 | 欧美在线观看视频网站 | va毛片| 少妇一级淫片免费放播放 | 夜夜夜精品视频 | 亚洲无线看 | 久草在线精品观看 | 欧洲黄色一级视频 | 成人免费久久 | 91网页视频入口在线观看 | 极品国产91在线网站 | 久久精品中文字幕 | 免费在线观看国产精品 | 欧美亚洲一区二区三区四区 | 毛片区| 高清av在线 | 欧美五月婷婷 |