點評:利用HTML5的新特點做文件異步上傳非常簡單方便,首先利用css的z-index屬性將input=file標簽隱藏在了id=btnSelect元素下面,通過觸發a標簽的點擊后,彈出文件選擇框利用HTML5的新特點做文件異步上傳非常簡單方便,本文主要展示JS部分,html結構。下面的代碼并未使用第三發庫,如果有參照,請注意一些未展現出來的代碼片段。我這邊的效果預覽:
1.文件未選擇 2.文件已選擇
HTML代碼部分:
思路:下面代碼中我利用css的z-index屬性將input="file”標簽隱藏在了id=btnSelect元素下面,通過觸發a標簽的點擊后,彈出文件選擇框。下面的masklayer用于點擊確認按鈕后的彈出層,避免用戶重復點擊確認按鈕。
1.文件未選擇 2.文件已選擇


HTML代碼部分:
思路:下面代碼中我利用css的z-index屬性將input="file”標簽隱藏在了id=btnSelect元素下面,通過觸發a標簽的點擊后,彈出文件選擇框。下面的masklayer用于點擊確認按鈕后的彈出層,避免用戶重復點擊確認按鈕。
復制代碼代碼如下:
<div id="wp" class="warpper">
<a id="btnSelect">單擊選擇要上傳的照片<http://pic.html5code.net/a>
<input id="uploadFile" type="file" name="myPhoto" http://pic.html5code.net/>
<button id="btnConfirm" class="btn" >確認上傳<http://pic.html5code.net/button>
<http://pic.html5code.net/div>
<div id="maskLayer" class="mask-layer" style="display:none;">
<p>圖片正在上傳中...<http://pic.html5code.net/p>
<http://pic.html5code.net/div>
JS圖片文件驗證部分:
驗證部分為:大小,是否已經選擇,文件的類型 三個部分。第一個createObject方法為創建本地圖片文件的預覽路徑,依次驗證是否為空,文件類型以及文件大小,不滿足條件則一律返回
false,滿足以上3個條件后,在dom中生成圖片預覽,添加img元素,然后利用createObjectURL()方法獲取預覽路徑。
代碼:
主站蜘蛛池模板:
萃取箱-萃取槽-PVC萃取箱厂家-混合澄清槽- 杭州南方化工设备
|
最新电影-好看的电视剧大全-朝夕电影网
|
山东led显示屏,山东led全彩显示屏,山东LED小间距屏,临沂全彩电子屏-山东亚泰视讯传媒有限公司
|
_网名词典_网名大全_qq网名_情侣网名_个性网名
|
压滤机-洗沙泥浆处理-压泥机-山东创新华一环境工程有限公司
|
安全光栅|射频导纳物位开关|音叉料位计|雷达液位计|两级跑偏开关|双向拉绳开关-山东卓信机械有限公司
|
517瓜水果特产网|一个专注特产好物的网站
|
塑料托盘厂家直销-吹塑托盘生产厂家-力库塑业【官网】
|
高压无油空压机_无油水润滑空压机_水润滑无油螺杆空压机_无油空压机厂家-科普柯超滤(广东)节能科技有限公司
|
安徽净化工程设计_无尘净化车间工程_合肥净化实验室_安徽创世环境科技有限公司
|
Safety light curtain|Belt Sway Switches|Pull Rope Switch|ultrasonic flaw detector-Shandong Zhuoxin Machinery Co., Ltd
|
塑料撕碎机_编织袋撕碎机_废纸撕碎机_生活垃圾撕碎机_废铁破碎机_河南鑫世昌机械制造有限公司
|
斗式提升机_链式斗提机_带式斗提机厂家无锡市鸿诚输送机械有限公司
|
威海防火彩钢板,威海岩棉复合板,威海彩钢瓦-文登区九龙岩棉复合板厂
|
数字展示在线_数字展示行业门户网站
|
EPK超声波测厚仪,德国EPK测厚仪维修-上海树信仪器仪表有限公司
|
电杆荷载挠度测试仪-电杆荷载位移-管桩测试仪-北京绿野创能机电设备有限公司
|
学生作文网_中小学生作文大全与写作指导|
浙江筋膜枪-按摩仪厂家-制造商-肩颈按摩仪哪家好-温州市合喜电子科技有限公司
|
京马网,京马建站,网站定制,营销型网站建设,东莞建站,东莞网站建设-首页-京马网
|
艾默生变频器,艾默生ct,变频器,ct驱动器,广州艾默生变频器,供水专用变频器,风机变频器,电梯变频器,艾默生变频器代理-广州市盟雄贸易有限公司官方网站-艾默生变频器应用解决方案服务商
|
河北凯普威医疗器材有限公司,高档轮椅系列,推车系列,座厕椅系列,协步椅系列,拐扙系列,卫浴系列
|
LED投光灯-工矿灯-led路灯头-工业灯具 - 山东普瑞斯照明科技有限公司
|
混合反应量热仪-高温高压量热仪-微机差热分析仪DTA|凯璞百科
|
啤酒设备-小型啤酒设备-啤酒厂设备-济南中酿机械设备有限公司
|
红外光谱仪维修_二手红外光谱仪_红外压片机_红外附件-天津博精仪器
|
TPE_TPE热塑性弹性体_TPE原料价格_TPE材料厂家-惠州市中塑王塑胶制品公司- 中塑王塑胶制品有限公司
|
MVE振动电机_MVE震动电机_MVE卧式振打电机-河南新乡德诚生产厂家
|
电动葫芦|手拉葫芦|环链电动葫芦|微型电动葫芦-北京市凌鹰起重机械有限公司
|
广东燎了网络科技有限公司官网-网站建设-珠海网络推广-高端营销型外贸网站建设-珠海专业h5建站公司「了了网」
|
体视显微镜_荧光生物显微镜_显微镜报价-微仪光电生命科学显微镜有限公司
|
大型果蔬切片机-水果冬瓜削皮机-洗菜机切菜机-肇庆市凤翔餐饮设备有限公司
|
美的商用净水器_美的直饮机_一级代理经销商_Midea租赁价格-厂家反渗透滤芯-直饮水批发品牌售后
|
进口便携式天平,外校_十万分之一分析天平,奥豪斯工业台秤,V2000防水秤-重庆珂偌德科技有限公司(www.crdkj.com)
|
恒压供水控制柜|无负压|一体化泵站控制柜|PLC远程调试|MCGS触摸屏|自动控制方案-联致自控设备
|
盘扣式脚手架-附着式升降脚手架-移动脚手架,专ye承包服务商 - 苏州安踏脚手架工程有限公司
|
合肥网带炉_安徽箱式炉_钟罩炉-合肥品炙装备科技有限公司
|
电磁铁_推拉电磁铁_机械手电磁吸盘电磁铁厂家-广州思德隆电子公司
|
杭州月嫂技术培训服务公司-催乳师培训中心报名费用-产后康复师培训机构-杭州优贝姆健康管理有限公司
|
粉碎机_塑料粉碎机_塑料破碎机厂家-星标机械
|
不锈钢水箱厂家,不锈钢保温水箱-山东桑特供水设备
|
<div id="wp" class="warpper">
<a id="btnSelect">單擊選擇要上傳的照片<http://pic.html5code.net/a>
<input id="uploadFile" type="file" name="myPhoto" http://pic.html5code.net/>
<button id="btnConfirm" class="btn" >確認上傳<http://pic.html5code.net/button>
<http://pic.html5code.net/div>
<div id="maskLayer" class="mask-layer" style="display:none;">
<p>圖片正在上傳中...<http://pic.html5code.net/p>
<http://pic.html5code.net/div>
JS圖片文件驗證部分:
驗證部分為:大小,是否已經選擇,文件的類型 三個部分。第一個createObject方法為創建本地圖片文件的預覽路徑,依次驗證是否為空,文件類型以及文件大小,不滿足條件則一律返回
false,滿足以上3個條件后,在dom中生成圖片預覽,添加img元素,然后利用createObjectURL()方法獲取預覽路徑。
代碼:
復制代碼代碼如下:
http://pic.html5code.net/http://pic.html5code.net/獲取數據的URL地址
function createObjectURL(blob) {
if (window.URL) {
return window.URL.createObjectURL(blob);
} else if (window.webkitURL) {
return window.webkitURL.createObjectURL(blob);
} else {
return null;
}
}
http://pic.html5code.net/http://pic.html5code.net/文件檢測
function checkFile() {
http://pic.html5code.net/http://pic.html5code.net/獲取文件
var file = $$("uploadFile").files[0];
http://pic.html5code.net/http://pic.html5code.net/文件為空判斷
if (file === null || file === undefined) {
alert("請選擇您要上傳的文件!");
$$("btnSelect").innerHTML = "單擊選擇要上傳的照片";
return false;
}
http://pic.html5code.net/http://pic.html5code.net/檢測文件類型
if(file.type.indexOf('image') === -1) {
alert("請選擇圖片文件!");
return false;
}
http://pic.html5code.net/http://pic.html5code.net/計算文件大小
var size = Math.floor(file.sizehttp://pic.html5code.net/1024);
if (size > 5000) {
alert("上傳文件不得超過5M!");
return false;
};
http://pic.html5code.net/http://pic.html5code.net/添加預覽圖片
$$("btnSelect").innerHTML = "<img class=http://pic.html5code.net/"photohttp://pic.html5code.net/" src=http://pic.html5code.net/""+createObjectURL(file)+"http://pic.html5code.net/"http://pic.html5code.net/>";
};
JS Ajax請求部分:
說明:第一個監聽文件選擇更改事件,滿足驗證條件后則執行預覽,第二個事件監聽為監聽單擊btnSelect時彈出窗口的響應,下面的則是確認上傳按鈕的事件監聽,開始發送Ajax請求。此處的createXHR()方法為創建XMLHttpRequest對象,代碼我并未貼出,包括addEventListener()方法,這2個部分可以參考其他文章。
http://pic.html5code.net/http://pic.html5code.net/獲取數據的URL地址
function createObjectURL(blob) {
if (window.URL) {
return window.URL.createObjectURL(blob);
} else if (window.webkitURL) {
return window.webkitURL.createObjectURL(blob);
} else {
return null;
}
}
http://pic.html5code.net/http://pic.html5code.net/文件檢測
function checkFile() {
http://pic.html5code.net/http://pic.html5code.net/獲取文件
var file = $$("uploadFile").files[0];
http://pic.html5code.net/http://pic.html5code.net/文件為空判斷
if (file === null || file === undefined) {
alert("請選擇您要上傳的文件!");
$$("btnSelect").innerHTML = "單擊選擇要上傳的照片";
return false;
}
http://pic.html5code.net/http://pic.html5code.net/檢測文件類型
if(file.type.indexOf('image') === -1) {
alert("請選擇圖片文件!");
return false;
}
http://pic.html5code.net/http://pic.html5code.net/計算文件大小
var size = Math.floor(file.sizehttp://pic.html5code.net/1024);
if (size > 5000) {
alert("上傳文件不得超過5M!");
return false;
};
http://pic.html5code.net/http://pic.html5code.net/添加預覽圖片
$$("btnSelect").innerHTML = "<img class=http://pic.html5code.net/"photohttp://pic.html5code.net/" src=http://pic.html5code.net/""+createObjectURL(file)+"http://pic.html5code.net/"http://pic.html5code.net/>";
};
JS Ajax請求部分:
說明:第一個監聽文件選擇更改事件,滿足驗證條件后則執行預覽,第二個事件監聽為監聽單擊btnSelect時彈出窗口的響應,下面的則是確認上傳按鈕的事件監聽,開始發送Ajax請求。此處的createXHR()方法為創建XMLHttpRequest對象,代碼我并未貼出,包括addEventListener()方法,這2個部分可以參考其他文章。
復制代碼代碼如下:
復制代碼
http://pic.html5code.net/http://pic.html5code.net/監聽圖片URL地址更改
addEventListener($$("uploadFile"), "change", function() {
checkFile();
});
http://pic.html5code.net/http://pic.html5code.net/監聽單擊文件選擇按鈕
addEventListener($$("btnSelect"), "click", function() {
http://pic.html5code.net/http://pic.html5code.net/彈出文件選擇框
$$("uploadFile").click();
});
http://pic.html5code.net/http://pic.html5code.net/監聽確認上傳按鈕的點擊事件
addEventListener($$("btnConfirm"), "click", function(e) {
if (checkFile()) {
try {
http://pic.html5code.net/http://pic.html5code.net/執行上傳操作var xhr = createXHR();
$$("maskLayer").style.display = "block";
xhr.open("post","http://pic.html5code.net/uploadPhoto.action", true);
xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest");
xhr.onreadystatechange = function() {
if (xhr.readyState == 4) {
var flag = xhr.responseText;
if (flag == "success") {
alert("圖片上傳成功!");
} else {
alert("圖片上傳成功!");
};
$$("maskLayer").style.display = "none";
};
};
http://pic.html5code.net/http://pic.html5code.net/表單數據
var fd = new FormData();
fd.append("myPhoto", $$("uploadFile").files[0]);
http://pic.html5code.net/http://pic.html5code.net/執行發送
xhr.send(fd);
} catch (e) {
console.log(e);
}
}
});
以上則為全部主要代碼部分,如果有什么問題可以聯系我,歡迎交流。
復制代碼
http://pic.html5code.net/http://pic.html5code.net/監聽圖片URL地址更改
addEventListener($$("uploadFile"), "change", function() {
checkFile();
});
http://pic.html5code.net/http://pic.html5code.net/監聽單擊文件選擇按鈕
addEventListener($$("btnSelect"), "click", function() {
http://pic.html5code.net/http://pic.html5code.net/彈出文件選擇框
$$("uploadFile").click();
});
http://pic.html5code.net/http://pic.html5code.net/監聽確認上傳按鈕的點擊事件
addEventListener($$("btnConfirm"), "click", function(e) {
if (checkFile()) {
try {
http://pic.html5code.net/http://pic.html5code.net/執行上傳操作var xhr = createXHR();
$$("maskLayer").style.display = "block";
xhr.open("post","http://pic.html5code.net/uploadPhoto.action", true);
xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest");
xhr.onreadystatechange = function() {
if (xhr.readyState == 4) {
var flag = xhr.responseText;
if (flag == "success") {
alert("圖片上傳成功!");
} else {
alert("圖片上傳成功!");
};
$$("maskLayer").style.display = "none";
};
};
http://pic.html5code.net/http://pic.html5code.net/表單數據
var fd = new FormData();
fd.append("myPhoto", $$("uploadFile").files[0]);
http://pic.html5code.net/http://pic.html5code.net/執行發送
xhr.send(fd);
} catch (e) {
console.log(e);
}
}
});
以上則為全部主要代碼部分,如果有什么問題可以聯系我,歡迎交流。
【網站聲明】本站除付費源碼經過測試外,其他素材未做測試,不保證完整性,網站上部分源碼僅限學習交流,請勿用于商業用途。如損害你的權益請聯系客服QQ:2655101040 給予處理,謝謝支持。
相關文檔推薦
css3
html5
canvas
域名頁
域名停放
地板
扁平
在線客服
動畫特效
按鈕切換
動畫模板
360
angular
jquery
svg
游戲模板
物流網站
博客
攝影
導航
小說源碼
郵件群發
蘋果cms
微擎微贊
微商
訂單系統
小程序
電影源碼
微信程序
帝國cms
養生網
挖礦網
java視頻
視頻打賞
thinkphp
蜘蛛池
discuz模板
淘寶客
音樂
分發系統
o2o
微擎
視頻教程
商城
掃碼點餐
零售系統
進銷存系統
bootstrap
商城模板
商務合作
廣告設計
驗證碼
門戶
ar
OElove
漫畫網
全景
視頻
區塊鏈
虛擬幣
你畫我猜
卡券
微小區
交友
小游戲
3d
刷單
小米
資源
ai