123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142 |
- document.write("<script language=javascript src='jquery-1.4.4.min.js'></script>");
- var xmlHttpRequest;
- var ot; //
- var oloaded;
- function createXmlHttpRequest() {
- if (window.ActiveXObject) {
- return new ActiveXObject("Microsoft.XMLHTTP");
- } else if (window.XMLHttpRequest) {
- return new XMLHttpRequest();
- }
- }
- function dataURLtoFile(dataurl, filename) {
- //var arr = dataurl.split(','), mime = arr[0].match(/:(.*?);/)[1],
- //bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n);
- var bstr = atob(dataurl);
- var n = bstr.length;
- var u8arr = new Uint8Array(n);
- while (n--) {
- u8arr[n] = bstr.charCodeAt(n);
- }
- var suffix = filename.substring(filename.length - 3, filename.length);
- if (suffix == "jpg" || suffix == "JPG")
- return new File([u8arr], filename, { type: 'image/jpg' });
- if (suffix == "png" || suffix == "PNG")
- return new File([u8arr], filename, { type: 'image/png' });
- if (suffix == "tif" || suffix == "TIF")
- return new File([u8arr], filename, { type: 'image/tiff' });
- if (suffix == "pdf" || suffix == "PDF")
- new File([u8arr], filename, { type: 'application/pdf' });
- return new File([u8arr], filename, { type: 'application/jpg' });
- }
- function progressFunction(evt) {
- var progressBar = document.getElementById("progressBar");
- var percentageDiv = document.getElementById("percentage");
- // event.total是需要传输的总字节,event.loaded是已经传输的字节。如果event.lengthComputable不为真,则event.total等于0
- if (evt.lengthComputable) {//
- progressBar.max = evt.total;
- progressBar.value = evt.loaded;
- percentageDiv.innerHTML = Math.round(evt.loaded / evt.total * 100) + "%";
- }
- var time = document.getElementById("time");
- var nt = new Date().getTime(); //获取当前时间
- var pertime = (nt - ot) / 1000; //计算出上次调用该方法时到现在的时间差,单位为s
- ot = new Date().getTime(); //重新赋值时间,用于下次计算
- var perload = evt.loaded - oloaded; //计算该分段上传的文件大小,单位b
- oloaded = evt.loaded; //重新赋值已上传文件大小,用以下次计算
- //上传速度计算
- var speed = perload / pertime; //b/s
- var bspeed = speed;
- var units = 'b/s'; //单位名称
- if (speed / 1024 > 1) {
- speed = speed / 1024;
- units = 'k/s';
- }
- if (speed / 1024 > 1) {
- speed = speed / 1024;
- units = 'M/s';
- }
- speed = speed.toFixed(1);
- //剩余时间
- var resttime = ((evt.total - evt.loaded) / bspeed).toFixed(1);
- time.innerHTML = ',速度:' + speed + units + ',剩余时间:' + resttime + 's';
- if (bspeed == 0)
- time.innerHTML = '上传已取消';
- }
- //上传成功响应
- function uploadComplete(evt) {
- // alert(evt.target.responseText);
- alert("上传成功");
- }
- //上传失败
- function uploadFailed(evt) {
- //alert(evt.target.responseText);
- //alert("上传失败");
- }
- //取消上传
- function cancleUploadFile() {
- xhr.abort();
- }
- //function ResultFun() {
- // if (xmlHttpRequest.readyState == 4 && xmlHttpRequest.status == 200) {
- // var iRestStr = xmlHttpRequest.responseText;
- // alert(iRestStr);
- // }
- //}
- //??????????
- function UpladFile(url, base64data, fileName, callback) {
- var fileObj = dataURLtoFile(base64data, fileName); //base64数据转为文件对象
- //var murl = "http://localhost:8080/MyServletTest/upload";
- var fm = document.forms[0];
- var form = new FormData(fm); // FormData ?
- form.append("file", fileObj);
- xmlHttpRequest = createXmlHttpRequest(); // XMLHttpRequest
- xmlHttpRequest.open("post", url, true); //post
- xmlHttpRequest.onreadystatechange = function () {
- if (xmlHttpRequest.readyState == 4 && xmlHttpRequest.status == 200) {
- var iRestStr = xmlHttpRequest.responseText;
- callback(iRestStr);
- //alert("ok");
- }
- };
- // xmlHttpRequest.onload = uploadComplete;
- // xmlHttpRequest.onerror = uploadFailed;
- // xmlHttpRequest.upload.onprogress = progressFunction;
- // xmlHttpRequest.upload.onloadstart = function () {
- // ot = new Date().getTime();
- // oloaded = 0;
- // };
- xmlHttpRequest.send(form);
- }
|