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

首頁 > 開發(fā) > AJAX > 正文

基于ajax html實現(xiàn)文件上傳技巧總結(jié)

2024-09-01 08:33:46
字體:
供稿:網(wǎng)友

引語:大家都知道,html中上傳文件就一個input,type=file就搞定了。但是,這個標簽的樣式,實在不值得提點什么,要改動他的樣式,恐怕也是較難的。但是其實挺簡單,今天就來說說上傳文件小技巧吧!

1. 怎樣自定義樣式?
1)、只管按照自己喜歡看到的樣式去定義即可,如<a href='javascript:;' class='upload-button'></a>,可以是背景圖片效果,可以是文字指示,總之想怎么改怎么改!有了按鈕,還需要一個文件名容器,用來存放選擇上傳文件時的名字,從而不讓上傳看起來枯澀難懂。

2)、添加真正需要上傳的文件控件,并設(shè)置屬性display:none;如 <input type='file' class='hide' />, 這樣就有了真正的上傳文件的地方了。所以,可以說,上傳文件的界面有多漂亮取決你的想象力!

2. 怎樣觸發(fā)事件?

這是個重點,觸發(fā)的點應(yīng)該是自己寫的樣式處,而真正起作用的元素卻是隱藏的,但是并不影響它的點擊效果,只需要給它觸發(fā)一個點擊事件即可,如$('#target-file').trigger('click');

3. 多選文件?

多文件上傳,只需使用html的一個file的multiple=true即可,當然你也可以選擇第三方的上傳控件,如swfupload,效果是真心不錯的,但是對于不想用的插件的人,就不起作用了。                                                                         

4.  相關(guān)插件? 

界面美化其實可以使用jqueryui等插件;
要做一些友好的交互的話,都會用到ajax技術(shù),無刷新切換、異步上傳、提交,最后,其實ajax的路徑也是可以保留的,使用pushState, replaceState 實現(xiàn) pjax .
表單驗證:validform.js
異步提交文件: jquery.form.js
友好的彈窗提示:layer.js

5. 一點兼容性的問題?

做界面方面的工作,最怕的也是很重要的工作,就是各個瀏覽器之間的兼容性問題,下面主要列幾點供參考:

table寬度的處理方式不一致;
select, input顯示高度不一致;

alert彈窗不一致;

...

6. 演示代碼

<a href="javascript:;" up-type-id="1" class="btn btn-default small-btn switch-upload-method"><span>本地上傳</span></a><a href="javascript:;" up-type-id="2" class="upload-file-instead btn btn-default small-btn switch-upload-method"><span>打包工具</span></a><input type="file" name="apkFiles[]" id="local-upload-real-file" class="upload-file-real hide" response-id="local-upload-container" multiple='true' /><input type="file" name="apkToolFiles[]" id="apk-tool-real-file" class="upload-file-real hide" response-id="apk-tool-container-textarea" /><script> $(function(){  var alertTitle = '系統(tǒng)提示:';  var submitId = '#do-submit';  $('#taskForm').Validform({   btnSubmit: submitId,   tiptype: 1,   ignoreHidden: true,   dragonfly: false,   tipSweep: true,   label: ".label",   showAllError: false,   postonce: true,   ajaxPost: true,   datatype:{   },   beforeCheck:function(curform){   },   beforeSubmit:function(curform){    $('.upload-file-real').attr('disabled', 'disabled');    $(submitId).attr('disabled', 'disabled'); //提交前禁用按鈕    ajaxSubmitForm(curform);    $(submitId).removeAttr('disabled');   //失敗后恢復(fù)可提交    return false;   },   submitForm: function(){}      //不再起作用  });  //切換上傳方法  $('.switch-upload-method').off().on('click', function(){//   $(submitId).attr('disabled', 'disabled');   var pObj = $(this).parent().find('.switch-upload-method');   var index = pObj.index(this);   var uploadTypeId = $('#upload-type-id').val();      //上傳方式:1:打包工具;2:本地上傳,0:沒有上傳方式   var uploadType = $(this).attr('up-type-id');   if(parseInt($('#sub-channel-count').html()) > 0){    if(uploadTypeId != uploadType){     layer.alert('還有子渠道包數(shù)據(jù),不能完成切換,請先確認清除再切換!');     return false;    }   }   pObj.not(':eq(' + index + ')').removeClass('btn-danger').addClass('btn-default');   pObj.eq(index).removeClass('btn-default').addClass('btn-danger');   if(uploadType == 36){    //local-upload    $('#upload-type-id').val(uploadType);    $('#init-apk-container').show();    $('#apk-tool-container').hide();    $('#upload-main-control').find('.del-it-main').css({display: 'inline-block'});    $('#local-upload-real-file').trigger('click');   }else if(uploadType == 35){   //apk-tool    $('#upload-type-id').val(uploadType);    $('#init-apk-container').hide();    $('#local-upload-container').hide();    $('#upload-main-control').find('.del-it-main').hide();    $('#apk-tool-container').show();   }  });  //本地上傳  $('#local-upload-real-file').off().on('change', function(){   if(!$(this).val()){    return false;   }   file_size = 0;   filepath = $(this).val();   maxFileSize = 30 * 1024 * 1024;   var browserCfg = {};   var ua = window.navigator.userAgent;   if (ua.indexOf("MSIE") >=1 ){    browserCfg.ie = true;   }else if(ua.indexOf("Firefox") >=1 ){    browserCfg.firefox = true;   }else if(ua.indexOf("Chrome") >=1 ){    browserCfg.chrome = true;   }   if (browserCfg.ie) {    var img = new Image();    img.src = filepath;    file_size = img.fileSize;    while (true) {     if (img.fileSize > 0) {      if (img.fileSize > maxFileSize) {       alert("上傳包超過30MB限制,請使用打包工具上傳!");       return false;      }      break;     }    }   } else {    file_size = this.files[0].size;    if (file_size > maxFileSize) {     alert("上傳包超過30MB限制,請使用打包工具上傳!");     return false;    }   }   var responseObjId = $(this).attr('response-id');   var responseObj = $('#' + responseObjId);   $('#taskForm').ajaxSubmit({    url:'/aa/bb/uploadTmpApk',    resetForm: false,    dataType: 'json',    beforeSubmit: function(option){     window.loading = layer.load(2);    },    success: function(data, statusText){     layer.close(window.loading);     if(data.status == 1){      $('#version-identifier').val(data.version);      responseObj.html(data.apkInfoHtml);      responseObj.show();      var delObj = $('#upload-main-control').find('.del-it-main');      delObj.css({'display': 'inline-block'});      $('#sub-channel-count').html(data.apkTotal);      $('#init-apk-container').hide();      $(submitId).removeAttr('disabled');     }else{      layer.alert(data.info, {title: alertTitle});     }    },    error: function(data){     layer.close(window.loading);     layer.alert('未知錯誤,請稍后再試!');    }   });   return false;//防止dialog 自動關(guān)閉  });  //打包工具  $('#apk-tool-real-file').off().on('change', function(){   if(!$(this).val()){    return false;   }   var responseObjId = $(this).attr('response-id');   var responseObj = $('#' + responseObjId);   $('#Form').ajaxSubmit({    url:'/aa/bb/uploadTmpApkTool',    resetForm: false,    dataType: 'json',    beforeSubmit: function(option){     window.loading = layer.load(2);    },    success: function(data, statusText){     layer.close(window.loading);     if(data.status == 1){      $('#version-identifier').val(data.version);      responseObj.html(data.infoHtml);      var parentContainer = responseObj.parent().parent(),       nameContainer = parentContainer.find('.apk-name-container'),        delObj = parentContainer.find('.del-it-apk-tool');      nameContainer.html(data.apkName);      nameContainer.attr('title', data.apkName);      $('#apk-tool-file-tmp').html(data.fileInfo);      $(submitId).removeAttr('disabled');     }else{      layer.alert(data.info, {title: alertTitle});     }    },    error: function(data){     layer.close(window.loading);     layer.alert('未知錯誤,請稍后再試!');    }   });   return false;//防止dialog 自動關(guān)閉  });  $('.apk-tool-upload-button').on('click', function(){   $('#apk-tool-real-file').trigger('click');  }); });</script> 

 

以上,主要就是,使用隱藏的input file標簽選擇,選擇文件之后立即ajax提交,最后,整個表單ajax提交的過程?! ?/p>

合理使用一些css, js, 讓你的網(wǎng)頁更自由!

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網(wǎng)。


注:相關(guān)教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
在线亚洲+欧美+日本专区| 亚洲va久久久噜噜噜久久| 国产精品成人一区二区三区吃奶| 日韩欧美电影一区二区| 伊人成人在线视频| 99国内精品久久久久久久| 亚洲国产精品ⅴa在线观看| 亚洲免费精彩视频| av有码在线观看| 国产美女视频一区二区| 日批视频在线免费看| 成人私拍视频| 99热这里只有精品8| 黄色成人在线免费观看| 久久精品www| 国产精品自拍av| 中国视频免男男gay| 在线综合视频网站| 狠狠人妻久久久久久综合麻豆| 小早川怜子一区二区三区| 国产精品高清亚洲| 美女一区网站| 91在线免费观看| 精品樱空桃一区二区三区| 永久免费精品视频| 亚洲尤物精选| 1769国内精品视频在线播放| 欧美日韩国产不卡在线看| 国产在线拍揄自揄拍无码视频| 亚洲欧洲午夜一线一品| 国产野外作爱视频播放| 成人av午夜影院| 久久综合给合久久狠狠色| 亚洲欧美999| 99riav国产精品| 91.com视频| 一二三区在线视频| 国内精品久久久久久久影视蜜臀| 亚洲精品ww久久久久久p站| 老鸭窝亚洲一区二区三区| 一区二区久久精品| 情侣偷拍对白清晰饥渴难耐| 欧美性大战久久久久久久蜜臀| 国产91精品免费| 国产在线视频欧美一区| 久久99精品久久久久久水蜜桃| 婷婷成人影院| 99久久99久久精品| 日本а中文在线天堂| 欧美视频国产精品| 91免费综合在线| 精品国产麻豆免费人成网站| 国产精品亚洲综合一区在线观看| 欧美人妻一区二区| 91高清免费在线观看| 91超碰碰碰碰久久久久久综合| 国产自摸综合网| 亚洲免费观看高清在线观看| 久久精品国产亚洲a∨麻豆| 日韩电影在线免费| 国产在线一区不卡| 欧美成人精品1314www| 精品国产伦一区二区三区观看说明| 久久国产柳州莫菁门| 宅男在线精品国产免费观看| 视频在线不卡免费观看| 久久三级视频| 亚洲高清国产精品| 麻豆传媒一区二区| 日韩精品亚洲元码| 日韩有码片在线观看| 国产三级精品三级在线观看| 欧美欧美全黄| 中文字幕高清av| 欧美不卡1区2区3区| 国产传媒久久文化传媒| 国产成人av网址| 影音先锋男人看片资源站| 国精产品乱码一区一区三区四区| 蜜桃狠狠色伊人亚洲综合网站| 亚洲女人****多毛耸耸8| 精品视频一区二区三区免费| 欧美精品福利在线| 蜜桃精品视频| 色一情一乱一乱一区91av| 日韩精品无码一区二区| 亚州精品永久观看视频| 欧美日韩在线二区| 美女爆乳18禁www久久久久久| 日韩一区二区三区在线观看视频| 91免费精品国偷自产在线| 国产午夜麻豆影院在线观看| www黄色日本| 国产午夜精品美女视频明星a级| 亚洲欧美在线免费观看| 国产一区二区三区在线观看网站| 美女精品视频一区| 成人精品一区二区三区电影免费| 午夜视频久久久久久| 欧美午夜不卡| av中文在线观看| 国产日韩v精品一区二区| 亚洲女人天堂成人av在线| 西西裸体人体做爰大胆久久久| 久草热视频在线观看| 欧美成在线视频| 国产精品www在线观看| 免费亚色电影在线观看| 免费观看日韩电影| 久99九色视频在线观看| 亚洲最大成人av| 我要看一级黄色大片| 国产中文字幕日韩| 美洲天堂一区二卡三卡四卡视频| 中文字幕第一区二区| 国产又爽又黄无码无遮挡在线观看| 日韩理论电影大全| 国产剧情麻豆剧果冻传媒视频免费| 高清一区二区三区视频| 女教师淫辱の教室蜜臀av软件| 久久亚洲午夜电影| 欧美tk丨vk视频| 亚洲区国产区| 久久久久久久久久久久久久久久久久久久| 久久在线视频免费观看| 久草成人在线视频| 久久久91精品国产一区不卡| 国产拍欧美日韩视频二区| 成人vr资源| 性欧美video另类hd尤物| 亚洲色图在线播放| 香蕉视频xxx| 好吊的妞视频这里都有| 狠狠色狠狠色综合日日小说| 2019天天干夜夜操| 国产麻豆高清视频在线第一页| 日韩欧美一区二区三区在线观看| 亚洲精品视频一区二区| 亚洲国产精品久久人人爱潘金莲| 成人国产精品一区二区免费麻豆| 亚洲午夜免费| av片在线观看永久免费| 日av在线播放中文不卡| 午夜影院黄色片| 在线亚洲人成电影网站色www| 人妻一区二区三区四区| 亚洲国产视频网站| 亚洲综合激情五月| 91在线精品| 国产一区二区丝袜| 亚洲视频一二三| 91国内在线| 日韩电影免费在线观看中文字幕| 国产一区二区在线免费| 亚洲一区黄色| 亚洲午夜无码av毛片久久| 亚洲综合图片区| 国产激情一区二区三区在线观看| 亚洲精品推荐| 日韩美女av在线免费观看| 亚洲一级av无码毛片精品| 欧美日韩在线一| 精品麻豆剧传媒av国产九九九| 欧美日韩国产区| www.色天使| 亚洲婷婷国产精品电影人久久| 看片网站在线观看| 小毛片在线观看| 中文字幕一区免费| 日韩av成人在线| 国产三级精品三级在线观看国产| 九色蝌蚪在线| 男插女视频网站| 99热这里只有精品首页| 中文字幕在线播放网址| 香蕉视频一区二区| 8x拔播拔播x8国产精品| 在线永久免费观看黄网站| 亚洲欧美黄色片| 久久中文字幕在线| 欧美综合欧美视频| 亚洲国产精品v| 国产一级在线观看视频| 国产视频91在线| 国产欧美日韩视频| 欧美风狂大伦交xxxx| 九色精品视频在线观看| 99久久精品国产毛片| 欧美色播在线播放| 国产精品女主播在线观看| 国产成人毛片| 国产成人精品免高潮费视频| 欧美巨大xxxx| 国产极品美女高潮无套久久久| 女女同性女同一区二区三区91| 婷婷激情四射五月天| 国产91精品在线| 国产叼嘿视频在线观看| 欧美美女网站色| 欧美成人久久久免费播放| 日韩欧美三级电影| 视频欧美精品| 偷拍视屏一区| 68精品国产免费久久久久久婷婷| 亚洲亚洲精品三区日韩精品在线视频| 国产精品伦子伦免费视频| 国产一区二区三区视频在线| 久久99精品久久久久婷婷| 欧美日韩亚洲不卡| 男人天堂成人在线| 中文字幕一区三区久久女搜查官| 999精品色在线播放| 日本久久久久亚洲中字幕| 一本大道香蕉久在线播放29| 国产精品美女免费| 国产乱子轮精品视频| 国模私拍视频在线播放| 国产毛片毛片毛片毛片| 日韩av在线一区二区| 蜜桃在线视频| 亚洲国产一区二区三区在线| 亚洲成av人片一区二区| 少妇久久久久久久久久| 国产精品国产自产拍在线| 激情五月婷婷久久| 一级二级在线观看| 色婷婷视频在线观看| 91黄色8090| 久久久久久久久久久一区| 精品一区二区三区影院在线午夜| 亚洲最新中文字幕| 欧美色图在线视频| 欧美视频中文一区二区三区在线观看| 日本黑人久久| 黑人巨大精品欧美一区二区免费| 天堂网www中文在线| 亚洲黄色成人网| 久久久久久99久久久精品网站| 国产婷婷在线观看| 伊人久久久久久久久久| 日韩一区二区免费高清| 亚洲视频国产| 国产乱码精品一区二区三区日韩精品| 欧美日韩精品在线一区二区| 综合五月婷婷| 欧美成在线观看| 亚洲国产成人精品久久久国产成人一区| 亚洲精品国产setv| 亚洲人妻一区二区| 性xxxfreexxxx性欧美| 国产成人看片| 日韩在线资源| 天天草天天干| 五月婷婷一区二区| 天天干天天草天天| 欧美偷窥清纯综合图区| 视频在线观看免费高清| 国产三级午夜理伦三级| 网爆门在线观看| 色一情一乱一伦一视频免费看| 亚洲激情自拍图| 欧美xxxxhdvideosex| 精品人妻一区二区三区免费看| 日韩高清在线一区| 美州a亚洲一视本频v色道| 欧美性xxxx极品hd欧美| 国产一二三四在线视频| 99视频在线精品国自产拍免费观看| 天堂av在线播放| 一本大道久久a久久精二百| 久久婷婷一区二区三区| 国产老肥熟xxxx在线观看| 后入内射欧美99二区视频| 最新国产成人在线观看| 日韩一区中文字幕| 伊人久久一区二区| 日本午夜人人精品| 青娱乐自拍偷拍| 六月丁香婷婷激情| 国内精品久久久久影院薰衣草| 99久久99久久免费精品蜜臀| 最近中文字幕免费mv| 欧美成人免费播放| 久久福利视频一区二区| 鲁鲁狠狠狠7777一区二区| 亚洲国产第一| 夜夜嗨av一区二区三区中文字幕| 欧美高清在线播放| 国产精彩视频在线观看| 精品一区二区中文字幕| 青青草免费在线观看| 日韩hd视频在线观看| 欧美性感美女h网站在线观看免费| 天海翼一区二区| 中文字幕人成人乱码亚洲电影| 久草视频在线资源站| 无码国产69精品久久久久同性| 午夜视频在线免费播放| 国产一区二区观看| 日韩女优视频免费观看| 久久久久久久性| 精品国产电影一区二区| 国产一二在线观看| 国产在线一卡二卡| 色一色在线观看视频网站| 日本不卡一区二区三区高清视频| 黄在线观看免费网站ktv| 成人一区二区在线观看| 成人午夜无人区一区二区| 黄色大片免费看| 国产成人亚洲综合无码| 欧美黄色大片网站| 午夜免费福利在线| 色综合婷婷久久| 国产福利91精品一区| 秋霞影视一区二区三区| 羞羞视频网站在线免费观看| 亚洲国产成人二区| 中文字幕+乱码+中文字幕一区| 中文字幕第315页| 你懂的免费在线观看视频网站| 污网站视频在线观看| 久久综合网色—综合色88| 96pao国产成视频永久免费| 国产v亚洲v天堂无码| 日p在线观看| 国产欧美一区二区三区另类精品| 蜜臀av一区二区在线观看|