亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

原生javascript上傳圖片帶進度條【實例分享】

2019-11-19 16:54:37
字體:
來源:轉載
供稿:網友

javascript代碼:

 ; (function(w) { var error = "上傳控件不支持您的瀏覽器!"; // 構造函數 function UploadImg(option) {  $u = this;  $u.option = option;  $u.init($u.option); } UploadImg.prototype = {  //初始化  init: function() {  var $u = this;    //template  $u.addupLoader =   '<form enctype="multipart/form-data">' +   '<label style="display:block;width:100%;cursor:pointer;height:100%;position: absolute;">' +   '<input class="kechenFengMian" type="file" capture="camera" name="file"/>' +   '</label>' +   '</form> ' +   '<img src="" width="280" height="160" />' +   '<div class="upload-progress"><span class="upload-son">等待中……</span></div>' +   '<div class="mask-Div">' +   '<div class="mask-show"></div>' +   '<div class="button-div">' +   '<span class="upload-btn"></span>' +   '<span class="deleteImg-btn"></span></div>' +   '</div>';  $u.wrap = $($u.option.el);  $u._creatFrom();  $u.eventChange($u.wrap.childNodes);  },  //生成form模板  _creatFrom: function() {  this.wrap.innerHTML = $u.addupLoader;  },  _removeFrom: function() {  this.wrap.innerHTML = "";  },  //事件觸發  /*  *對于onchange事件若值沒有發生改變的話  *此事件就會失效所以在這里打算將DOM移除  *直接初始化所有方法和事件  *  */ /**  *@method (eventChange)   *@param {childArr} 參數為數組集合    */  eventChange: function(childArr) {  var $u = this;  //提交form表單  addEvent(childArr[0], 'change', function(e) {   //保存當前this對象    var thisForm = this;       if (!thisForm['file'].files.length == 0) {   $u._removeFrom();   $u.init();   testWidthHeight(e,function(iSsize){   if(!iSsize){     alert("上傳的尺寸為:長為"+$u.option.Max_Width +"寬為"+$u.option.Max_Height);     return false;     }    childArr[2].setAttribute('src', "");    childArr[3].style.display = 'block';    $u.wrap.style.background = "#f3f3f3";    //發送post請求    $u.ajaxPost(thisForm, $u.option.url, function(result) {    //post成功    var data = JSON.parse(result);    $u.maskEvent(childArr);    childArr[2].setAttribute('src', data.url);    childArr[3].style.display = 'none';    }, function(error) {     //post 失敗      console.log(error);    }, childArr);   });   } else {     alert("上傳個數不能為0");     return false;   }  });  /**  *@method (testWidthHeight) 獲取上傳尺寸大小  *@param {e} 事件對象  *@param {callback} 回調函數    */  function testWidthHeight(e,callback) {  var isSize;  var forms = e.target;  var reader = new FileReader();  reader.onload = function () {    var dataURL = reader.result;    var image = new Image();   image.onload=function(){     var width = image.width;    var height = image.height;    isSize = width <= $u.option.Max_Width && height <= $u.option.Max_Height;     if(typeof callback == 'function') {    callback(isSize);    }      };     image.src = dataURL;  };   reader.readAsDataURL(forms.files[0]);   return isSize;   }  },  //遮罩層上的是事件  maskEvent: function(childArr) {  $u = this;  var addBtn = childArr[4].childNodes[1].childNodes[0];  var deleBtn = childArr[4].childNodes[1].childNodes[1];  //當鼠標滑過  addEvent($u.wrap, "mouseover", function() {   if (childArr[2].getAttribute('src')) {   childArr[4].style.top = 0;   }  });  //當鼠標離開  addEvent($u.wrap, "mouseout", function() {   childArr[4].style.top = -300 + 'px';  });  //修改  addEvent(addBtn, 'click', function() {   childArr[0][0].click();  });  //刪除  addEvent(deleBtn, 'click', function() {   $u.wrap.style.backgroundImage = "url(add-bg-upload1.jpg)";   childArr[2].setAttribute('src', "");  });  }, /** *@method (ajaxPost) 上傳方法 *@param {fm} 當前form表單 *@param {url} url地址  *@param {fnSuc} 成功回調  *@param {fnErr} 失敗回調  *@param {childArr} 節點集合   */  ajaxPost: function(fm, url, fnSuc, fnErr, childArr) {  var $u = this;  //進度條  var proGress = childArr[3].childNodes[0];  if (window.XMLHttpRequest) {   var xhr = new XMLHttpRequest();  } else {   var xhr = new ActiveXObject("Microsoft.XMLHTTP");  }  //data數據   var data = new FormData(fm);  xhr.onreadystatechange = function() {   if (xhr.readyState == 4) {   //成功回調   if (xhr.status == 200) {    fnSuc(xhr.responseText);   } else {    if (fnErr) {    fnErr(xhr.status);    }   }   }  };  //監聽上傳進度    addEvent(xhr.upload, "progress", uploadProgress);  //post后臺  xhr.open('post', url);  //發送數據  xhr.send(data);  //上傳進度  function uploadProgress(evt) {   var loaded = evt.loaded; //已上傳的文件大小   var allTotal = evt.total; //總大小   var per = Math.floor((loaded / allTotal) * 100) + '%';   proGress.innerHTML = per;   proGress.style.width = per;  }  }, }; //獲取元素 function $(selectors) {  return document.querySelector(selectors); } //事件監聽 function addEvent(el, type, fn) {  if (el.addEventListener) {  el.addEventListener(type, fn, false);  } else if (el.attachEvent) {  el.attachEvent('on' + type, function() {   fn.call(el);  });  } else {  throw new Error('not supported or DOM not loaded');  } } //判斷瀏覽器是否存在file屬性 if (window.File && window.FileList) {  window.UploadImg = UploadImg; } else { alert(error);  return false; } })(window);

PHP代碼:

<?php$file=$_FILES['file'];foreach ($file as $key => $value) { $$key=$value;}$path='upload/'.time().strtolower(strstr($name, '.')); //修改上傳文件的名稱,strstr($name, '.')是獲取后綴名move_uploaded_file($tmp_name,$path);$path=strstr($path,$path[0]); //圖片的存儲地址$arr=array(  "url"=>$path);$json=json_encode($arr); //jsonecho $json;?>

CSS代碼:

 .couser-img-upload {  width:280px;  height:160px;    cursor:pointer;  position: relative;  overflow: hidden;  background:url(add-bg-upload1.jpg);   } .couser-img-upload:hover{  border: 2px solid #00caac;  background:url(add-bg-upload.jpg); } .kechenFengMian {  display:none; } .upload-progress{  display: none;  width: 90%;  position: absolute;    overflow: hidden;  border:1px solid #00caac;  border-radius: 8px;  top: 50%;  margin-top: -7.5px;  left: 50%;  padding: 2px;  margin-left:-46%;  font-size: 12px; } .upload-progress .upload-son{  display: inline-block;  background: #00caac;  border-radius: 8px;  text-align: center;  color: #fff; } .mask-Div{  position: absolute;  top: -300px;  width: 100%;  height: 100%; } .mask-Div .mask-show{  position: absolute;  width: 100%;  height: 100%;  background: #000;  opacity: 0.5; } .mask-Div .button-div{  width: 140px;  height: 50px;  position: absolute;  left: 50%;  top: 50%;  margin-left: -70px;  margin-top: -25px; } .mask-Div .button-div span{  display: block;  width: 50px;  height: 50px;  border-radius: 50%;  overflow: hidden;  background:url(tianjiashanchu.png) no-repeat; } .mask-Div .button-div span.upload-btn{    background-position: 0px 0px;  float: left; } .mask-Div .button-div span.deleteImg-btn{  background:url(tianjiashanchu.png) no-repeat;  background-position: -50px 0px ;  float: right; } .mask-Div .button-div span.upload-btn:hover{  background-position: 0px -50px ; } .mask-Div .button-div span.deleteImg-btn:hover{  background-position: -50px -50px ; }

Html代碼:

<!DOCTYPE html><html lang="en"><head>  <meta charset="UTF-8">  <title></title>  <script type="text/javascript" src="uploadImg.js"></script></head><body><div class="couser-img-upload"></div> <script type="text/javascript">   new UploadImg({    el:".couser-img-upload",    url:'./upload.php',    Max_Width:280,    Max_Height:160  });</script></body></html>

以上就是本文的全部內容,希望本文的內容對大家的學習或者工作能帶來一定的幫助,同時也希望多多支持武林網!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲成人黄色网址| 久久久亚洲福利精品午夜| 欧美一级视频在线观看| 91国自产精品中文字幕亚洲| 亚洲精品国产精品国自产在线| 国产精品偷伦免费视频观看的| 欧美三级欧美成人高清www| 日韩在线视频免费观看高清中文| 亚洲香蕉成人av网站在线观看| 国产精品日日摸夜夜添夜夜av| 久久久久久久久国产| 米奇精品一区二区三区在线观看| 国产精品精品久久久久久| 日韩欧美国产成人| 亚洲女同性videos| 国产精品成人在线| 欧美激情精品在线| 欧美成人性色生活仑片| 国产精品美乳一区二区免费| 久久视频在线播放| 亚洲国产精品女人久久久| 日韩精品日韩在线观看| 久久精品视频va| www.日韩免费| 欧美日韩在线看| 91色中文字幕| 欧美激情亚洲视频| 伦伦影院午夜日韩欧美限制| 亚洲色图校园春色| 亚洲欧美日韩综合| 日韩电影中文字幕一区| 国产精品第3页| 久久久久久国产免费| 亚洲三级黄色在线观看| 日韩精品一区二区三区第95| 国产精品久久久久久久久久尿| 亚洲欧美自拍一区| 久久精品这里热有精品| 亚洲黄一区二区| 岛国av午夜精品| 欧美日韩国产中字| 91在线视频九色| 精品久久中文字幕久久av| 成人精品视频久久久久| 日韩不卡在线观看| 国产成人精品国内自产拍免费看| 亚洲高清色综合| 国产日韩欧美影视| 不卡av在线播放| 国产精品99久久久久久www| 日韩av有码在线| 国产精品久久久久77777| 激情久久av一区av二区av三区| 成人欧美在线观看| 91精品国产色综合久久不卡98口| 国产丝袜一区二区三区| 欧美在线视频一区| 欧美亚洲国产另类| 日韩av在线免播放器| 久久久精品一区| 日韩中文字幕视频| 久久精品免费电影| 色综合视频网站| 亚洲老司机av| 亚洲人成电影在线播放| 在线观看精品自拍私拍| 在线观看中文字幕亚洲| 久久久女人电视剧免费播放下载| 久久久久久亚洲精品不卡| 奇米四色中文综合久久| 亚洲欧洲国产伦综合| 久久久久久久久久久免费精品| 26uuu国产精品视频| 中文字幕亚洲综合久久筱田步美| 亚洲精品日韩欧美| 国外色69视频在线观看| 日韩免费av片在线观看| 亚洲精品成人网| 激情成人中文字幕| 欧美一级黄色网| 日韩在线观看精品| 亚洲bt天天射| 亚洲人精品午夜在线观看| 中文字幕综合在线| 91九色单男在线观看| 中文字幕免费精品一区| 日韩乱码在线视频| 国产91av在线| 国产成人一区二区| 亚洲精品美女视频| 中文字幕视频在线免费欧美日韩综合在线看| 91精品久久久久久久久久| 久久影视电视剧免费网站| 久久久久久久久久久免费| 在线观看91久久久久久| 91国内产香蕉| 亚洲一区中文字幕| 久久久精品在线观看| 欧美香蕉大胸在线视频观看| 久久久极品av| 中文字幕av一区二区| 日韩美女免费线视频| 97久久伊人激情网| 亚洲福利在线看| 国产一区二区美女视频| 国产精品999999| 精品香蕉在线观看视频一| 色噜噜狠狠色综合网图区| 欧美肥老太性生活视频| 91日韩在线播放| 欧美一级免费看| 欧美裸体男粗大视频在线观看| 久久久免费高清电视剧观看| 人人澡人人澡人人看欧美| 亚洲精品视频二区| 国产精品免费视频xxxx| 国产精品扒开腿做爽爽爽的视频| 日韩成人久久久| 欧美精品在线免费观看| 91精品国产色综合久久不卡98口| 欧美专区国产专区| 亚洲免费成人av电影| 人人做人人澡人人爽欧美| 视频直播国产精品| 国产免费一区二区三区在线观看| 午夜精品一区二区三区视频免费看| 国产精品午夜国产小视频| 国产精品久久久久久久久影视| 91产国在线观看动作片喷水| 亚洲国产日韩欧美在线图片| 久久精品一本久久99精品| 久久久久久成人精品| 国产啪精品视频网站| 亚洲人成伊人成综合网久久久| 51视频国产精品一区二区| 日韩av最新在线观看| 亚洲人午夜精品免费| 国产+人+亚洲| 精品成人久久av| 黑人精品xxx一区| 亚洲аv电影天堂网| 国产精品欧美日韩| www.国产精品一二区| www国产精品视频| 亲爱的老师9免费观看全集电视剧| 亚洲一级黄色片| 欧美精品videos另类日本| 欧美成人免费在线视频| 国产aⅴ夜夜欢一区二区三区| 日本欧美一二三区| 国产精品嫩草视频| 毛片精品免费在线观看| 97精品久久久中文字幕免费| 亚洲色图17p| 亚洲欧洲在线观看| 91亚洲精品久久久| 国产日韩欧美夫妻视频在线观看| 久久精品国产久精国产一老狼| 久久久久久久影院| 国内精品久久久久久久| 中文字幕欧美日韩va免费视频| 精品无码久久久久久国产| 在线电影av不卡网址| 久久久久久久一区二区|