校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > Ajax上傳圖片及上傳前先預(yù)覽功能實(shí)例代碼

Ajax上傳圖片及上傳前先預(yù)覽功能實(shí)例代碼

熱門標(biāo)簽:立陶宛地圖標(biāo)注 河間市地圖標(biāo)注app 中國地圖標(biāo)注不明確情況介紹表 上海企業(yè)外呼系統(tǒng)價(jià)錢 地圖標(biāo)注推銷坑人 電銷機(jī)器人 長春 東平縣地圖標(biāo)注app 怎樣在地圖標(biāo)注文字 大眾點(diǎn)評400電話怎么申請

手頭上有幾個小項(xiàng)目用到了easyUI,一開始決定使用easyUI就注定了項(xiàng)目整體上前后端分離,基本上所有的請求都采用Ajax來完成。在文件上傳的時候用到了Ajax上傳文件,以及圖片在上傳之前的預(yù)覽效果,解決了這兩個小問題,和小伙伴們分享下。

上傳之前的預(yù)覽

方式一

先來說說圖片上傳之前的預(yù)覽問題。這里主要采用了HTML5中的FileReader對象來實(shí)現(xiàn),關(guān)于FileReader對象,如果小伙伴們不了解,可以查看這篇文章HTML5學(xué)習(xí)之FileReader接口。我們來看看實(shí)現(xiàn)方式:

!DOCTYPE html>
html lang="en">
head>
 meta charset="UTF-8">
 title>Ajax上傳文件/title>
 script src="jquery-3.2.1.js">/script>
/head>
body>
用戶名:input id="username" type="text">br>
用戶圖像:input id="userface" type="file" onchange="preview(this)">br>
div id="preview">/div>
input type="button" id="btnClick" value="上傳">
script>
 $("#btnClick").click(function () {
  var formData = new FormData();
  formData.append("username", $("#username").val());
  formData.append("file", $("#userface")[0].files[0]);
  $.ajax({
   url: '/fileupload',
   type: 'post',
   data: formData,
   processData: false,
   contentType: false,
   success: function (msg) {
    alert(msg);
   }
  });
 });
 function preview(file) {
  var prevDiv = document.getElementById('preview');
  if (file.files  file.files[0]) {
   var reader = new FileReader();
   reader.onload = function (evt) {
    prevDiv.innerHTML = 'img src="' + evt.target.result + '" />';
   }
   reader.readAsDataURL(file.files[0]);
  } else {
   prevDiv.innerHTML = 'div class="img" style="filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale,src=\'' + file.value + ''">/div>';
  }
 }
/script>
/body>
/html>

這里對于支持FileReader的瀏覽器直接使用FileReader來實(shí)現(xiàn),不支持FileReader的瀏覽器則采用微軟的濾鏡來實(shí)現(xiàn)(注意給圖片上傳的input標(biāo)簽設(shè)置onchange函數(shù))。

實(shí)現(xiàn)效果如下:

方式二

除了這種方式之外我們也可以采用網(wǎng)上現(xiàn)成的一個jQuery實(shí)現(xiàn)的方式。這里主要參考了這里。

不過由于原文年代久遠(yuǎn),里邊使用的$.browser.msie從jQuery1.9就被移除掉了,所以如果我們想使用這個得做一點(diǎn)額外的處理,我修改后的uploadPreview.js文件內(nèi)容如下:

jQuery.browser={};(function(){jQuery.browser.msie=false; jQuery.browser.version=0;if(navigator.userAgent.match(/MSIE ([0-9]+)./)){ jQuery.browser.msie=true;jQuery.browser.version=RegExp.$1;}})();
jQuery.fn.extend({
 uploadPreview: function (opts) {
  var _self = this,
   _this = $(this);
  opts = jQuery.extend({
   Img: "ImgPr",
   Width: 100,
   Height: 100,
   ImgType: ["gif", "jpeg", "jpg", "bmp", "png"],
   Callback: function () {}
  }, opts || {});
  _self.getObjectURL = function (file) {
   var url = null;
   if (window.createObjectURL != undefined) {
    url = window.createObjectURL(file)
   } else if (window.URL != undefined) {
    url = window.URL.createObjectURL(file)
   } else if (window.webkitURL != undefined) {
    url = window.webkitURL.createObjectURL(file)
   }
   return url
  };
  _this.change(function () {
   if (this.value) {
    if (!RegExp("\.(" + opts.ImgType.join("|") + ")$", "i").test(this.value.toLowerCase())) {
     alert("選擇文件錯誤,圖片類型必須是" + opts.ImgType.join(",") + "中的一種");
     this.value = "";
     return false
    }
    if ($.browser.msie) {
     try {
      $("#" + opts.Img).attr('src', _self.getObjectURL(this.files[0]))
     } catch (e) {
      var src = "";
      var obj = $("#" + opts.Img);
      var div = obj.parent("div")[0];
      _self.select();
      if (top != self) {
       window.parent.document.body.focus()
      } else {
       _self.blur()
      }
      src = document.selection.createRange().text;
      document.selection.empty();
      obj.hide();
      obj.parent("div").css({
       'filter': 'progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale)',
       'width': opts.Width + 'px',
       'height': opts.Height + 'px'
      });
      div.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = src
     }
    } else {
     $("#" + opts.Img).attr('src', _self.getObjectURL(this.files[0]))
    }
    opts.Callback()
   }
  })
 }
});

然后在我們的html文件中引入這個js文件即可:

!DOCTYPE html>
html lang="en">
head>
 meta charset="UTF-8">
 title>Ajax上傳文件/title>
 script src="jquery-3.2.1.js">/script>
 script src="uploadPreview.js">/script>
/head>
body>
用戶名:input id="username" type="text">br>
用戶圖像:input id="userface" type="file" onchange="preview(this)">br>
div>img id="ImgPr" width="200" height="200"/>/div>
input type="button" id="btnClick" value="上傳">
script>
 $("#btnClick").click(function () {
  var formData = new FormData();
  formData.append("username", $("#username").val());
  formData.append("file", $("#userface")[0].files[0]);
  $.ajax({
   url: '/fileupload',
   type: 'post',
   data: formData,
   processData: false,
   contentType: false,
   success: function (msg) {
    alert(msg);
   }
  });
 });
 $("#userface").uploadPreview({Img: "ImgPr", Width: 120, Height: 120});
/script>
/body>
/html>

這里有如下幾點(diǎn)需要注意:

1.HTML頁面中要引入我們自定義的uploadPreview.js文件

2.預(yù)先定義好要顯示預(yù)覽圖片的img標(biāo)簽,該標(biāo)簽要有id。

3.查找到img標(biāo)簽然后調(diào)用uploadPreview函數(shù)

執(zhí)行效果如下:

Ajax上傳圖片文件

Ajax上傳圖片文件就簡單了,沒有那么多方案,核心代碼如下:

 var formData = new FormData();
  formData.append("username", $("#username").val());
  formData.append("file", $("#userface")[0].files[0]);
  $.ajax({
   url: '/fileupload',
   type: 'post',
   data: formData,
   processData: false,
   contentType: false,
   success: function (msg) {
    alert(msg);
   }
  });

核心就是定義一個FormData對象,將要上傳的數(shù)據(jù)包裝到這個對象中去。然后在ajax上傳數(shù)據(jù)的時候設(shè)置data屬性就為formdata,processData屬性設(shè)置為false,表示jquery不要去處理發(fā)送的數(shù)據(jù),然后設(shè)置contentType屬性的值為false,表示不要設(shè)置請求頭的contentType屬性。OK,主要就是設(shè)置這三個,設(shè)置成功之后,其他的處理就和常規(guī)的ajax用法一致了。

后臺的處理代碼大家可以在文末的案例中下載,這里我就不展示不出來了。

源碼下載:http://xiazai.jb51.net/201707/yuanma/AjaxFileUpload.rar

總結(jié)

以上所述是小編給大家介紹的Ajax上傳圖片及上傳前先預(yù)覽功能實(shí)例代碼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

您可能感興趣的文章:
  • jQuery AjaxUpload 上傳圖片代碼
  • php+ajax無刷新上傳圖片實(shí)例代碼
  • swfupload ajax無刷新上傳圖片實(shí)例代碼
  • jquery的ajaxSubmit()異步上傳圖片并保存表單數(shù)據(jù)演示代碼
  • JQuery+ajax實(shí)現(xiàn)批量上傳圖片(自寫)
  • Jquery ajaxsubmit上傳圖片實(shí)現(xiàn)代碼
  • AJAX實(shí)現(xiàn)圖片預(yù)覽與上傳及生成縮略圖的方法
  • Ajax 上傳圖片并預(yù)覽的簡單實(shí)現(xiàn)
  • 基于HTML5的可預(yù)覽多圖片Ajax上傳
  • 用ajax實(shí)現(xiàn)預(yù)覽鏈接可以看到鏈接的內(nèi)容

標(biāo)簽:本溪 銅川 玉樹 益陽 遼寧 營口 四川 內(nèi)江

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Ajax上傳圖片及上傳前先預(yù)覽功能實(shí)例代碼》,本文關(guān)鍵詞  Ajax,上傳,圖片,及,前先,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Ajax上傳圖片及上傳前先預(yù)覽功能實(shí)例代碼》相關(guān)的同類信息!
  • 本頁收集關(guān)于Ajax上傳圖片及上傳前先預(yù)覽功能實(shí)例代碼的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    欧美一区二区国产| 亚洲国产视频网站| 一级精品视频在线观看宜春院| 水野朝阳av一区二区三区| 国产在线视频一区二区| 欧美在线播放高清精品| 国产亚洲欧美日韩俺去了| 亚洲一区二区精品视频| 丰满白嫩尤物一区二区| 91麻豆精品国产自产在线观看一区| 国产欧美精品一区二区色综合 | 色婷婷综合中文久久一本| 欧美一区二区啪啪| 一区二区在线看| 国产99精品国产| 精品福利一区二区三区| 天涯成人国产亚洲精品一区av| 99久久99精品久久久久久| 国产色综合一区| 狠狠色2019综合网| 欧美一区二区三区播放老司机| 亚洲精品中文字幕在线观看| 成人av综合在线| 欧美极品少妇xxxxⅹ高跟鞋 | 亚洲一二三区在线观看| 99久久久国产精品| 国产精品每日更新| 成人精品鲁一区一区二区| 欧美精品一区二区久久久| 日韩一区精品字幕| 欧美日韩一级二级三级| 亚洲午夜在线电影| 欧美日韩精品一区二区在线播放| 亚洲综合另类小说| 欧美午夜精品免费| 亚洲成人av一区二区三区| 欧美日韩一区中文字幕| 偷拍亚洲欧洲综合| 欧美顶级少妇做爰| 六月婷婷色综合| 欧美国产在线观看| 成人小视频在线观看| 一区在线观看视频| 色婷婷综合久久久中文字幕| 一区二区三区av电影 | 亚洲福利视频一区| 欧美日韩精品系列| 麻豆精品一区二区av白丝在线| 日韩视频在线你懂得| 激情另类小说区图片区视频区| 精品91自产拍在线观看一区| 国产成人精品亚洲日本在线桃色| 国产精品美女一区二区在线观看| av激情成人网| 亚洲一区二区视频在线观看| 这里只有精品视频在线观看| 国产一区二区三区日韩| 日本一区免费视频| 在线影院国内精品| 免费成人你懂的| 国产精品人人做人人爽人人添| 色综合久久中文字幕综合网| 日韩中文字幕区一区有砖一区| 精品国产精品网麻豆系列| 成人综合在线观看| 亚洲国产美国国产综合一区二区| 日韩视频一区在线观看| 成人国产电影网| 亚洲一区二区三区四区在线| 日韩一区二区三区视频在线观看| 国产成人av一区二区三区在线 | 色婷婷一区二区三区四区| 首页国产丝袜综合| 日本一区二区三区在线不卡| 在线观看亚洲专区| 国内精品伊人久久久久av影院| ...xxx性欧美| 日韩欧美一卡二卡| 91麻豆精东视频| 黄网站免费久久| 亚洲婷婷国产精品电影人久久| 4438成人网| 色偷偷久久一区二区三区| 国产一区二区网址| 日韩av在线播放中文字幕| 亚洲欧洲精品成人久久奇米网| 日韩一本二本av| 色视频一区二区| 国产一区视频网站| 播五月开心婷婷综合| 青青草国产精品亚洲专区无| 国产精品国产成人国产三级 | 一本一道久久a久久精品| 久久99深爱久久99精品| 亚洲国产乱码最新视频| 国产精品久久久久久久岛一牛影视| 日韩一区二区电影网| 在线观看国产日韩| 99久久免费精品高清特色大片| 国内外成人在线视频| 三级欧美韩日大片在线看| 一区二区三区91| 亚洲狼人国产精品| 自拍偷拍亚洲综合| 国产亚洲欧美在线| 国产性做久久久久久| 久久中文娱乐网| 精品卡一卡二卡三卡四在线| 日韩一区二区电影网| 日韩一区二区三| 日韩一区二区在线观看视频播放| 在线精品亚洲一区二区不卡| 99国产精品国产精品久久| 成人18精品视频| 成人av在线观| 92精品国产成人观看免费| 成人免费视频一区二区| 国产91综合一区在线观看| 日韩精品亚洲专区| 国产成人精品三级麻豆| 国产精品自拍三区| 成人在线一区二区三区| 成人一区二区视频| 99精品黄色片免费大全| 色综合天天综合狠狠| 在线视频国产一区| 欧美日韩小视频| 7777女厕盗摄久久久| 日韩欧美三级在线| 精品国产人成亚洲区| 久久久久久久综合| 国产精品人成在线观看免费| ...av二区三区久久精品| 亚洲网友自拍偷拍| 蜜桃91丨九色丨蝌蚪91桃色| 狠狠色丁香婷婷综合久久片| 国产精品一区一区| 97国产一区二区| 欧美日韩免费电影| 精品国内片67194| 国产女主播视频一区二区| 亚洲另类中文字| 日本亚洲三级在线| 国产不卡视频在线观看| 色女孩综合影院| 欧美一区二区三区免费观看视频| 精品动漫一区二区三区在线观看| 日本一区二区在线不卡| 亚洲电影你懂得| 国产一区二区看久久| 91小视频在线| 日韩免费在线观看| 国产精品对白交换视频| 丝袜诱惑亚洲看片| 成人一区二区三区视频在线观看| 91网上在线视频| 欧美哺乳videos| 亚洲狠狠丁香婷婷综合久久久| 日韩精品五月天| 成年人网站91| 精品国产91久久久久久久妲己 | 欧美伦理视频网站| 欧美激情一区二区三区| 天天av天天翘天天综合网| 国内一区二区在线| 欧美日韩国产区一| 国产精品久久久久久久久久免费看 | 国产无遮挡一区二区三区毛片日本 | 青青草97国产精品免费观看 | 国产亚洲一本大道中文在线| 一区二区三区中文在线观看| 久久国产剧场电影| 欧美在线观看你懂的| 国产精品久久久久久久岛一牛影视| 日本伊人午夜精品| 日本韩国精品一区二区在线观看| 久久久国际精品| 蜜桃精品视频在线| 在线观看一区二区视频| 国产精品美女久久久久aⅴ国产馆| 爽爽淫人综合网网站| 91一区在线观看| 国产精品久久夜| 国产黑丝在线一区二区三区| 日韩精品影音先锋| 首页国产欧美日韩丝袜| 欧美日本免费一区二区三区| 亚洲美女屁股眼交3| 大桥未久av一区二区三区中文| 欧美xxxx在线观看| 琪琪久久久久日韩精品| 欧美日韩国产成人在线免费| 亚洲视频 欧洲视频| voyeur盗摄精品| 国产精品免费久久| 99re亚洲国产精品| 亚洲福利一区二区三区| 色素色在线综合| 一区二区三区日韩欧美| 91网站最新地址|