結合HTML5,
創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供鶴峰網(wǎng)站建設、鶴峰做網(wǎng)站、鶴峰網(wǎng)站設計、鶴峰網(wǎng)站制作等企業(yè)網(wǎng)站建設、網(wǎng)頁設計與制作、鶴峰企業(yè)網(wǎng)站模板建站服務,十多年鶴峰做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡服務。
form?enctype="multipart/form-data"
input?id="file"?name="file"?type="file"?/
input?type="button"?value="Upload"?/
/form
progress/progress
$('#file').change(function(){
var?formData?=?new?FormData($('form')[0]);
$.ajax({
url:?'upload.php',//接收頁面
type:?'POST',
xhr:?function()?{?//XHR事件
myXhr?=?$.ajaxSettings.xhr();
if(myXhr.upload){?//檢測是否有此方法屬性
myXhr.upload.addEventListener('progress',progressHandlingFunction,?false);?//?設置進度
}
return?myXhr;
},
//Ajax事件
beforeSend:?beforeSendHandler,
success:?completeHandler,
error:?errorHandler,
//?Form數(shù)據(jù)
data:?formData,
cache:?false,
contentType:?false,
processData:?false
});
});
如何使用HTML5進行文件拖放
1.實現(xiàn)將文件拖放到頁面元素上
2.在JavaScript中分析被拖放的文件
3.在客戶端上加載和解析文件
4.使用XMLHttpRequest2將文件異步上傳到服務器
5.上傳時,顯示圖形進度條
6.使用進程增強( progressive enhancement)以確保文件上傳表單在所有瀏覽器正常工作
7.純JavaScript代碼,不使用其它庫。
一,直接上可以代碼參考下:
script
//判斷瀏覽器是否支持HTML5 Canvas
window.onload = function () {
try {
//動態(tài)創(chuàng)建一個canvas元 ,并獲取他2Dcontext。如果出現(xiàn)異常則表示不支持 document.createElement("canvas").getContext("2d");
document.getElementByIdx("support").innerHTML = "瀏覽器支持HTML5 CANVAS";
}
catch (e) {
document.getElementByIdx("support").innerHTML = "瀏覽器不支持HTML5 CANVAS";
}
};
//這段代 主要是獲取攝像頭的視頻流并顯示在Video 簽中
window.addEventListener("DOMContentLoaded", function () {
var canvas = document.getElementByIdx("canvas"),
context = canvas.getContext("2d"),
video = document.getElementByIdx("video"),
videoObj = { "video": true },
errBack = function (error) {
console.log("Video capture error: ", error.code);
};
//navigator.getUserMedia這個寫法在Opera中好像是navigator.getUserMedianow
if (navigator.getUserMedia) {
navigator.getUserMedia(videoObj, function (stream) {
video.src = stream;
video.play();
}, errBack);
} else if (navigator.webkitGetUserMedia) {
navigator.webkitGetUserMedia(videoObj, function (stream) {
video.src = window.webkitURL.createObjectURL(stream);
video.play();
}, errBack);
}
//這個是拍照按鈕的事件,
$("#snap").click(function () {
context.drawImage(video, 0, 0, 320, 320);
//CatchCode();
});
}, false);
//定時器
var interval = setInterval(CatchCode, "300");
//這個是 刷新上 圖像的
function CatchCode() {
$("#snap").click();
//實際運用可不寫,測試代 , 為單擊拍照按鈕就獲取了當前圖像,有其他用途
var canvans = document.getElementByIdx("canvas");
//獲取瀏覽器頁面的畫布對象
//以下開始編 數(shù)據(jù)
var imgData = canvans.toDataURL();
//將圖像轉(zhuǎn)換為base64數(shù)據(jù)
var base64Data = imgData.substr(22);
//在前端截取22位之后的字符串作為圖像數(shù)據(jù)
//開始異步上
$.post("uploadImgCode.ashx", { "img": base64Data }, function (data, status) {
if (status == "success") {
if (data == "OK") {
alert("二維 已經(jīng)解析");
}
else {
// alert(data);
}
}
else {
alert("數(shù)據(jù)上 失敗");
} }, "text");
}
/script
二.最后的就是接收經(jīng)過base64編碼之后的圖像文件了。
public void ProcessRequest (HttpContext context) {
string img;//接收經(jīng)過base64編 之后的字符串
context.Response.ContentType = "text/plain";
try {
img =context.Request["img"].ToString();
//獲取base64字符串
byte[] imgBytes = Convert.FromBase64String(img);
//將base64字符串轉(zhuǎn)換為字節(jié)數(shù)組
System.IO.Stream stream = new System.IO.MemoryStream(imgBytes);
//將字節(jié)數(shù)組轉(zhuǎn)換為字節(jié)流
//將流轉(zhuǎn)回Image,用于將PNG 式照片轉(zhuǎn)為jpg,壓縮體積以便保存。
System.Drawing.Image imgae = System.Drawing.Image.FromStream(stream);
imgae.Save(context.Server.MapPath("~/Test/") + Guid.NewGuid().ToString()+".jpg", System.Drawing.Imaging.ImageFormat.Jpeg);//保存圖片
context.Response.Write("OK");//輸出調(diào)用結果
} catch (Exception msg) {
img = null;
context.Response.Write(msg);
return;
}
}
名稱欄目:html5異步上傳,html 異步
新聞來源:http://www.rwnh.cn/article22/dscojcc.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導航、外貿(mào)網(wǎng)站建設、ChatGPT、關鍵詞優(yōu)化、用戶體驗、網(wǎng)頁設計公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)