| 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); }
 |