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


HTML代碼部分:
思路:下面代碼中我利用css的z-index屬性將input="file”標(biāo)簽隱藏在了id=btnSelect元素下面,通過觸發(fā)a標(biāo)簽的點擊后,彈出文件選擇框。下面的masklayer用于點擊確認(rèn)按鈕后的彈出層,避免用戶重復(fù)點擊確認(rèn)按鈕。
復(fù)制代碼代碼如下:
<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" >確認(rèn)上傳<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圖片文件驗證部分:
驗證部分為:大小,是否已經(jīng)選擇,文件的類型 三個部分。第一個createObject方法為創(chuàng)建本地圖片文件的預(yù)覽路徑,依次驗證是否為空,文件類型以及文件大小,不滿足條件則一律返回
false,滿足以上3個條件后,在dom中生成圖片預(yù)覽,添加img元素,然后利用createObjectURL()方法獲取預(yù)覽路徑。
代碼:
主站蜘蛛池模板:
亚洲黄色网址
|
精品精品
|
天天爽天天|
成人亚洲天堂
|
午夜精品视频在线
|
激情都市亚洲
|
99只有精品
|
亚洲精品一区二区三区在线
|
久久精品久久久久久久
|
高清一级片
|
日韩免费在线播放
|
欧美黄色一区
|
黄色网址av
|
黄色在线视频播放
|
欧美日韩在线一区
|
三级中文字幕
|
欧美黄色一级大片
|
大乳女喂男人吃奶
|
黄a视频|
成人综合网站
|
日韩三级在线播放
|
日韩国产一区二区三区
|
欧美精品在线播放
|
三级视频网站
|
国产精品suv一区二区
|
久久激情视频
|
免费特级毛片
|
国产成人精品久久久
|
日韩专区在线
|
午夜免费在线
|
日本免费一级片
|
国产精品免费一区二区三区
|
日韩av不卡在线观看
|
黄网免费观看
|
天天撸夜夜操
|
中文字幕av网站
|
亚洲 欧美 另类 综合 偷拍
|
精品影院|
麻豆av在线免费观看
|
免费黄色片网站
|
www.伊人|
<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" >確認(rèn)上傳<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圖片文件驗證部分:
驗證部分為:大小,是否已經(jīng)選擇,文件的類型 三個部分。第一個createObject方法為創(chuàng)建本地圖片文件的預(yù)覽路徑,依次驗證是否為空,文件類型以及文件大小,不滿足條件則一律返回
false,滿足以上3個條件后,在dom中生成圖片預(yù)覽,添加img元素,然后利用createObjectURL()方法獲取預(yù)覽路徑。
代碼:
復(fù)制代碼代碼如下:
http://pic.html5code.net/http://pic.html5code.net/獲取數(shù)據(jù)的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/添加預(yù)覽圖片
$$("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請求部分:
說明:第一個監(jiān)聽文件選擇更改事件,滿足驗證條件后則執(zhí)行預(yù)覽,第二個事件監(jiān)聽為監(jiān)聽單擊btnSelect時彈出窗口的響應(yīng),下面的則是確認(rèn)上傳按鈕的事件監(jiān)聽,開始發(fā)送Ajax請求。此處的createXHR()方法為創(chuàng)建XMLHttpRequest對象,代碼我并未貼出,包括addEventListener()方法,這2個部分可以參考其他文章。
http://pic.html5code.net/http://pic.html5code.net/獲取數(shù)據(jù)的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/添加預(yù)覽圖片
$$("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請求部分:
說明:第一個監(jiān)聽文件選擇更改事件,滿足驗證條件后則執(zhí)行預(yù)覽,第二個事件監(jiān)聽為監(jiān)聽單擊btnSelect時彈出窗口的響應(yīng),下面的則是確認(rèn)上傳按鈕的事件監(jiān)聽,開始發(fā)送Ajax請求。此處的createXHR()方法為創(chuàng)建XMLHttpRequest對象,代碼我并未貼出,包括addEventListener()方法,這2個部分可以參考其他文章。
復(fù)制代碼代碼如下:
復(fù)制代碼
http://pic.html5code.net/http://pic.html5code.net/監(jiān)聽圖片URL地址更改
addEventListener($$("uploadFile"), "change", function() {
checkFile();
});
http://pic.html5code.net/http://pic.html5code.net/監(jiān)聽單擊文件選擇按鈕
addEventListener($$("btnSelect"), "click", function() {
http://pic.html5code.net/http://pic.html5code.net/彈出文件選擇框
$$("uploadFile").click();
});
http://pic.html5code.net/http://pic.html5code.net/監(jiān)聽確認(rèn)上傳按鈕的點擊事件
addEventListener($$("btnConfirm"), "click", function(e) {
if (checkFile()) {
try {
http://pic.html5code.net/http://pic.html5code.net/執(zhí)行上傳操作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/表單數(shù)據(jù)
var fd = new FormData();
fd.append("myPhoto", $$("uploadFile").files[0]);
http://pic.html5code.net/http://pic.html5code.net/執(zhí)行發(fā)送
xhr.send(fd);
} catch (e) {
console.log(e);
}
}
});
以上則為全部主要代碼部分,如果有什么問題可以聯(lián)系我,歡迎交流。
復(fù)制代碼
http://pic.html5code.net/http://pic.html5code.net/監(jiān)聽圖片URL地址更改
addEventListener($$("uploadFile"), "change", function() {
checkFile();
});
http://pic.html5code.net/http://pic.html5code.net/監(jiān)聽單擊文件選擇按鈕
addEventListener($$("btnSelect"), "click", function() {
http://pic.html5code.net/http://pic.html5code.net/彈出文件選擇框
$$("uploadFile").click();
});
http://pic.html5code.net/http://pic.html5code.net/監(jiān)聽確認(rèn)上傳按鈕的點擊事件
addEventListener($$("btnConfirm"), "click", function(e) {
if (checkFile()) {
try {
http://pic.html5code.net/http://pic.html5code.net/執(zhí)行上傳操作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/表單數(shù)據(jù)
var fd = new FormData();
fd.append("myPhoto", $$("uploadFile").files[0]);
http://pic.html5code.net/http://pic.html5code.net/執(zhí)行發(fā)送
xhr.send(fd);
} catch (e) {
console.log(e);
}
}
});
以上則為全部主要代碼部分,如果有什么問題可以聯(lián)系我,歡迎交流。
【網(wǎng)站聲明】本站除付費源碼經(jīng)過測試外,其他素材未做測試,不保證完整性,網(wǎng)站上部分源碼僅限學(xué)習(xí)交流,請勿用于商業(yè)用途。如損害你的權(quán)益請聯(lián)系客服QQ:2655101040 給予處理,謝謝支持。
相關(guān)文檔推薦
css3
html5
canvas
域名頁
域名停放
地板
扁平
在線客服
動畫特效
按鈕切換
動畫模板
360
angular
jquery
svg
游戲模板
物流網(wǎng)站
博客
攝影
導(dǎo)航
小說源碼
郵件群發(fā)
蘋果cms
微擎微贊
微商
訂單系統(tǒng)
小程序
電影源碼
微信程序
帝國cms
養(yǎng)生網(wǎng)
挖礦網(wǎng)
java視頻
視頻打賞
thinkphp
蜘蛛池
discuz模板
淘寶客
音樂
分發(fā)系統(tǒng)
o2o
微擎
視頻教程
商城
掃碼點餐
零售系統(tǒng)
進(jìn)銷存系統(tǒng)
bootstrap
商城模板
商務(wù)合作
廣告設(shè)計
驗證碼
門戶
ar
OElove
漫畫網(wǎng)
全景
視頻
區(qū)塊鏈
虛擬幣
你畫我猜
卡券
微小區(qū)
交友
小游戲
3d
刷單
小米
資源
ai