fetch太慢去除历史提交记录
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
@charset "utf-8";
|
||||
/* CSS Document */
|
||||
body, div, p, ul, h1, h2, h3, h4, h5,span , img,dl,dt,dd{ margin: 0; padding: 0; }
|
||||
html, body { height: 100%;}
|
||||
body { font-family: Helvetica,'微软雅黑';background:#03a9f4
|
||||
/*url(../i/bg.jpg)*/; font-size: 14px; color: #313131; }
|
||||
h1, h2, h3, h4, h5 {margin:0;padding:0;}
|
||||
em { font-style: normal; }
|
||||
ul, ol, li { list-style: none }
|
||||
img { border: 0 none }
|
||||
a { text-decoration: none; color: #858585; }
|
||||
.fl{float:left;}
|
||||
.fr{float:right;}
|
||||
/*layut css*/
|
||||
.wrap{width:860px; margin:0 auto; overflow:hidden;zoom:1;}
|
||||
.right{width:527px; float:right; background:#eeeeed; overflow:hidden;}
|
||||
.title{height:50px; background:#8bc34a; line-height:3.0em;color:#fff;font-size:16px;padding-left:25px;}
|
||||
.jdt{ background:#bebebe; height:3px; position:relative;}
|
||||
.jdt p{ position:absolute;left:0;top:0; height:3px; }
|
||||
.jdt p.orange{background:#8bc34a;}
|
||||
.jdt p.gray{background:#999;}
|
||||
|
||||
.first{background:#8bc34a;}
|
||||
.right dl{ overflow:hidden;zoom:1;}
|
||||
.grybg{background:#eaeae9;}
|
||||
.first dt,.first dd{ background:url(../i/wifi_d_bg.png) no-repeat right top;_background:none;_filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src="wifi_d_bg.png")}
|
||||
.right dt,.first dt{width:255px;padding-left:25px;}
|
||||
.right dd,.first dd{width:110px; text-align:center;}
|
||||
.right dt,.right dd{color:#555;float:left; line-height:2.8em;font-size:16px;}
|
||||
.right dd.orange{color:#8bc34a; cursor:pointer}
|
||||
.right dd.gray{color:#aaa;}
|
||||
|
||||
.scroll{height:900px; overflow-y:scroll;padding-bottom:10px;position:relative;z-index:9999;}
|
||||
.left{margin-right:527px;}
|
||||
.logo{height:112px; background:url(../i/wifi_logo_3.png) no-repeat left 24px;margin-bottom:36px;}
|
||||
.wf_box{height:204px;margin-bottom:46px; overflow:hidden;}
|
||||
.wf_box h3{padding:124px 0 0 0;color:#fff;width:200px; height:76px; margin-left:55px; text-align:center;}
|
||||
.wf_wifi{ background:url(../i/wifi_img.png) no-repeat 47px top;}
|
||||
.wf_active,.wf_normal{background:url(../i/wifi_tz0.png) no-repeat;}
|
||||
.wf_active{background-position:56px -210px;}
|
||||
.wf_normal{background-position:56px top;}
|
||||
.wf_btn{width:203px;height:100px;padding-left:37px;margin-bottom:16px;}
|
||||
.wf_left{width:6px; height:100px; background:url(../i/wifi_left.png) no-repeat left top; float:left;}
|
||||
.wf_right{width:6px; height:100px; background:url(../i/wifi_right.png) no-repeat left top; float:left;}
|
||||
.wf_center{width:228px; float:left; background:#8bc34a; text-align:center;color:#fff;height:100px;}
|
||||
.wf_center h3{font-size:24px; line-height:1.6em;margin-top:22px;}
|
||||
.wf_center p{font-size:14px; line-height:1.6em;}
|
||||
.wf_gs{color:#fff; line-height:1.6em;padding-left:37px;}
|
||||
.right dd.wf_bgn{ background:none;}
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 10 KiB |
@@ -0,0 +1,14 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="108dp" height="108dp" viewBox="0 0 108 108">
|
||||
<path d="M0,0h108v108h-108z" fill="#FFFFFF" />
|
||||
<path
|
||||
d="M55.659,79.068c-1.258,0 -2.521,-0.094 -3.753,-0.279c-0.773,-0.115 -1.307,-0.838 -1.19,-1.611s0.841,-1.311 1.612,-1.191c1.093,0.164 2.214,0.248 3.331,0.248c12.261,0 22.235,-9.975 22.235,-22.235c0,-12.26 -9.975,-22.234 -22.235,-22.234c-10.531,0 -19.695,7.479 -21.79,17.781c-0.155,0.768 -0.902,1.262 -1.671,1.107c-0.767,-0.156 -1.263,-0.904 -1.106,-1.672c2.361,-11.618 12.693,-20.051 24.567,-20.051c13.823,0 25.069,11.246 25.069,25.068C80.729,67.822 69.482,79.068 55.659,79.068z"
|
||||
fill="#568FCC" />
|
||||
<path
|
||||
d="M30.986,53.461c0,0 -3.656,-1.06 -3.656,1.636c0,2.693 0,15.295 0,15.295s-0.674,2.598 2.598,3.369c3.271,0.77 7.697,2.404 7.697,2.404s3.464,0.387 5.58,-0.479c2.116,-0.867 7.505,-2.215 7.505,-2.215s2.213,-0.383 2.213,-3.656c0,-3.271 0,-14.24 0,-14.24s-0.771,-3.366 -4.233,-1.922c-3.464,1.444 -5.869,2.118 -5.869,2.118s-4.33,0.48 -6.157,-0.385C34.834,54.519 30.986,53.461 30.986,53.461z"
|
||||
fill="#568FCC" />
|
||||
<path d="M53.445,48.757m-3.5,0a3.5,3.5 0,1 1,7 0a3.5,3.5 0,1 1,-7 0" fill="#568FCC" />
|
||||
<path d="M66.861,48.757m-3.5,0a3.5,3.5 0,1 1,7 0a3.5,3.5 0,1 1,-7 0" fill="#568FCC" />
|
||||
<path
|
||||
d="M39.758,74.008c-0.783,0 -1.418,-0.635 -1.418,-1.418v-12.5c0,-0.783 0.635,-1.416 1.418,-1.416s1.418,0.633 1.418,1.416v12.5C41.176,73.373 40.541,74.008 39.758,74.008z"
|
||||
fill="#FFFFFF" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.5 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 3.7 KiB |
@@ -0,0 +1,42 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta name="renderer" content="webkit">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
|
||||
<link href="css/stylewf.css" type="text/css" rel="stylesheet"/>
|
||||
<title data-js="t0"></title>
|
||||
</head>
|
||||
<body>
|
||||
<div class="wrap">
|
||||
<div class="right">
|
||||
<p class="title" data-js="t1"></p>
|
||||
<dl class="first">
|
||||
<dt data-js="t2"></dt>
|
||||
<dd data-js="t3"></dd>
|
||||
<dd class="wf_bgn" data-js="t4"></dd>
|
||||
</dl>
|
||||
|
||||
<div class="scroll">
|
||||
<ul class="" id="tableStyle"></ul>
|
||||
</div><!--scroll end-->
|
||||
</div><!--right end-->
|
||||
<div class="left">
|
||||
<div class="logo"></div>
|
||||
<div id="drag_area" class="wf_box">
|
||||
<h3 data-js="t6"></h3>
|
||||
</div><!--wf_bg1和wf_bg2两个背景样式还有wf_on样式拖拽时候的状态-->
|
||||
<div class="wf_btn">
|
||||
<div id="spanButtonPlaceHolder"></div>
|
||||
</div>
|
||||
<p class="wf_gs" data-js="t5"></p>
|
||||
</div><!--left end -->
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
<script src="js/langSwich.js"></script>
|
||||
<script src="js/swfupload.js"></script>
|
||||
<script src="js/common.js"></script>
|
||||
<script src="js/swf_fun.js"></script>
|
||||
<script src="js/html5_fun.js"></script>
|
||||
@@ -0,0 +1,236 @@
|
||||
/**
|
||||
* 公共函数
|
||||
*/
|
||||
|
||||
//全局的配置文件
|
||||
var config = {
|
||||
fileTypes: "txt|epub|umd", //允许上传的文件格式 "txt|epub" // |doc|docx|wps|xls|xlsx|et|ppt|pptx|dps
|
||||
//url : "http://"+location.host+"?action=addBook",//"http://localhost/t/post.php",//
|
||||
url: "../addLocalBook",
|
||||
fileLimitSize: 500 * 1024 * 1024,
|
||||
};
|
||||
|
||||
var file = {
|
||||
inQueue: [], //已经在队列里面的文件,包括 HTML5上传和 Flash上传的
|
||||
clientHaveFiles: [], // 客户端已经存在的文件列表
|
||||
};
|
||||
|
||||
/**
|
||||
* HTML5 和 flash 公用,所有文件对象集合
|
||||
* @var array
|
||||
*/
|
||||
var filesUpload = []; //
|
||||
|
||||
//统计文件大小
|
||||
function countFileSize(fileSize) {
|
||||
var KB = 1024;
|
||||
var MB = 1024 * 1024;
|
||||
if (KB >= fileSize) {
|
||||
return fileSize + "B";
|
||||
} else if (MB >= fileSize) {
|
||||
return (fileSize / KB).toFixed(2) + "KB";
|
||||
} else {
|
||||
return (fileSize / MB).toFixed(2) + "MB";
|
||||
}
|
||||
}
|
||||
|
||||
//如果文件太长进行截取
|
||||
function substr_string(name) {
|
||||
var maxLen = 15;
|
||||
var len = name.length;
|
||||
if (len < 17) return name;
|
||||
|
||||
var lastIndex = name.lastIndexOf(".");
|
||||
var suffix = name.substr(lastIndex);
|
||||
var pre = name.substr(0, lastIndex);
|
||||
var preLen = pre.length;
|
||||
var preStart = preLen - 10;
|
||||
//前面10个 + 后面5个
|
||||
var fileName =
|
||||
pre.substr(0, 10) +
|
||||
"...." +
|
||||
pre.substr(preStart > 4 ? -4 : -preStart, 4) +
|
||||
suffix;
|
||||
return fileName;
|
||||
}
|
||||
|
||||
function checkFile(file) {
|
||||
if (file.size > config.fileLimitSize) {
|
||||
return jsonLang.t11;
|
||||
}
|
||||
|
||||
if (
|
||||
!file.name ||
|
||||
!file.name.toLowerCase().match("(" + config.fileTypes + ")$")
|
||||
) {
|
||||
return jsonLang.t12;
|
||||
}
|
||||
|
||||
var len = filesUpload.length;
|
||||
for (var i = 0; i < len; i++) {
|
||||
if (filesUpload[i].name == file.name) {
|
||||
return jsonLang.t13;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加文件时,回调的函数
|
||||
* @param object file 文件对象
|
||||
* @param int type 0 是swf 上传的,1 是html5上传的
|
||||
*/
|
||||
function fileQueued(file, type) {
|
||||
var size = 0,
|
||||
fid = file.id,
|
||||
name = "";
|
||||
type = type || 0;
|
||||
|
||||
if (file != undefined) {
|
||||
//计算文件大小 单位MB
|
||||
size = countFileSize(file.size);
|
||||
name = substr_string(file.name);
|
||||
//创建要插入的元素
|
||||
var li = document.createElement("li");
|
||||
li.id = `tr_${fid}`;
|
||||
li.innerHTML = `<dl class="grybg">
|
||||
<dt>${name}</dt>
|
||||
<dd>${size}</dd>
|
||||
<dd id="handle_button_${fid}" onclick=userCancelUpload("${fid}",${type}) class="orange">
|
||||
<span id="progress_bar_span_${fid}">0%</span> ${jsonLang.t9}
|
||||
</dd>
|
||||
</dl>
|
||||
<div class="jdt"><p id="progress_bar_p_${fid}" ></p></div>`;
|
||||
var table = document.getElementById("tableStyle");
|
||||
table.appendChild(li);
|
||||
//保存falsh_id,为上传做准备
|
||||
//global_flash_id.push(file.id);
|
||||
//更改背景颜色
|
||||
changeTrBackGroundColor();
|
||||
}
|
||||
}
|
||||
|
||||
function changeTrBackGroundColor() {
|
||||
var getTr = document.getElementById("tableStyle").getElementsByTagName("dl");
|
||||
trNum = getTr.length;
|
||||
for (var i = 0; i < trNum; i++) {
|
||||
if (i % 2 == 0) {
|
||||
getTr[i].style.backgroundColor = "#f3f3f3";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//上传时返回的状态
|
||||
function uploadProgress(file, bytesLoaded, bytesTotal) {
|
||||
var progressClass = document.getElementById(
|
||||
"progress_bar_p_" + file.id
|
||||
).classList;
|
||||
if (!progressClass.contains("orange")) {
|
||||
progressClass.add("orange");
|
||||
}
|
||||
document.getElementById("progress_bar_p_" + file.id).style.width =
|
||||
(bytesLoaded / bytesTotal) * 100 + "%";
|
||||
document.getElementById("progress_bar_span_" + file.id).innerHTML =
|
||||
parseInt((bytesLoaded / bytesTotal) * 100) + "%";
|
||||
}
|
||||
|
||||
//上传成功
|
||||
function uploadSuccess(file, serverData, res) {
|
||||
var id = "handle_button_" + file.id;
|
||||
var dd = document.createElement("dd");
|
||||
dd.innerHTML = jsonLang.t10;
|
||||
document.getElementById(id).replaceWith(dd);
|
||||
}
|
||||
|
||||
//取消上传
|
||||
function userCancelUpload(file_id, type) {
|
||||
if (type == 0) {
|
||||
SWFFuns.cancelUpload(file_id);
|
||||
} else {
|
||||
HTML5Funs.cancelUpload(file_id);
|
||||
}
|
||||
var element = document.getElementById("handle_button_" + file_id);
|
||||
element.innerHTML = jsonLang.t14;
|
||||
element.classList.remove("orange");
|
||||
element.classList.add("gray");
|
||||
//如果已经上传一部分了
|
||||
var progressElement = document.getElementById("progress_bar_p_" + file_id);
|
||||
if (progressElement.classList.contains("orange")) {
|
||||
progressElement.classList.remove("orange");
|
||||
progressElement.classList.add("gray");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 通过文件名称 从全局的文件列表中获取文件对象
|
||||
*
|
||||
*/
|
||||
function getFileFomeFilesUpload(filename) {
|
||||
var len = filesUpload.length;
|
||||
for (var i = 0; i < len; i++) {
|
||||
if (filesUpload[i].name == filename) {
|
||||
return filesUpload[i];
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 往全局的 上传列表添加一个数据
|
||||
*/
|
||||
function addFileToFilesUpload(file) {
|
||||
if (typeof file == "string") {
|
||||
filesUpload.push({ name: file });
|
||||
return true;
|
||||
} else if (typeof file == "object") {
|
||||
filesUpload.push(file);
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* 往全局的 上传列表添加一个数据
|
||||
*/
|
||||
function updateFileToFilesUpload(file) {
|
||||
var len = filesUpload.length;
|
||||
for (var i = 0; i < len; i++) {
|
||||
if (filesUpload[i].name == file.name) {
|
||||
filesUpload[i] = file;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* 查找在数组中的位置
|
||||
*/
|
||||
function findObjectKey(object, fid) {
|
||||
var len = object.length;
|
||||
for (var i = 0; i < len; i++) {
|
||||
if (object[i].id == fid) {
|
||||
return i;
|
||||
}
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
/**
|
||||
* 从全局的文件集合中移除文件,一般上传失败时使用
|
||||
* @param array files 文件对象集合 [{},{},{}]
|
||||
* @param int fid 要删除的文件id
|
||||
* @return 删除后的数组, 其实数组是引用类型可以不返回
|
||||
*/
|
||||
function removeFileFromFilesUpload(files, fid) {
|
||||
var filesUploadKey = -1;
|
||||
|
||||
filesUploadKey = findObjectKey(files, fid);
|
||||
//从全局文件中移除
|
||||
if (filesUploadKey > -1) files.splice(filesUploadKey, 1);
|
||||
|
||||
return files;
|
||||
}
|
||||
@@ -0,0 +1,241 @@
|
||||
/**
|
||||
* 处理拖拽上传
|
||||
*/
|
||||
var isDragOver = false; //拖拽触发点
|
||||
var fileNumber = -1; //上传文件编号
|
||||
var fileNumberPex = "zyFileUpload_"; //编号前缀
|
||||
var currUploadfile = {}; //当前上传的文件对象
|
||||
|
||||
var uploadQueue = []; //上传队列集合
|
||||
var isUploading = false; //是否正在上传
|
||||
|
||||
var XHR;
|
||||
try {
|
||||
XHR = new XMLHttpRequest();
|
||||
} catch (e) {}
|
||||
|
||||
(function (isSupportFileUpload) {
|
||||
//不支持拖拽上传,或者 不支持FormData ,显示WiFi表示
|
||||
if (!isSupportFileUpload) {
|
||||
document.getElementById("drag_area").classList.add("wf_wifi");
|
||||
document.getElementById("drag_area").innerHTML = "";
|
||||
return;
|
||||
//更换样式
|
||||
} else {
|
||||
document.getElementById("drag_area").classList.add("wf_normal");
|
||||
}
|
||||
|
||||
addEvent();
|
||||
|
||||
/**
|
||||
* 添加事件
|
||||
*/
|
||||
function addEvent() {
|
||||
var dropArea = document.getElementById("drag_area");
|
||||
dropArea.addEventListener("dragover", handleDragOver, false);
|
||||
dropArea.addEventListener("dragleave", handleDragLeave, false);
|
||||
dropArea.addEventListener("drop", handleDrop, false);
|
||||
}
|
||||
|
||||
/**
|
||||
* 松开拖拽文件的处理,进行上传
|
||||
*/
|
||||
function handleDrop(evt) {
|
||||
evt.stopPropagation();
|
||||
evt.preventDefault();
|
||||
var classList = document.getElementById("drag_area").classList;
|
||||
classList.add("wf_normal");
|
||||
classList.remove("wf_active");
|
||||
|
||||
console.log("Drop");
|
||||
isDragOver = false;
|
||||
|
||||
var file = {};
|
||||
var errorMsgs = [];
|
||||
var len = evt.dataTransfer.files.length;
|
||||
|
||||
for (var i = 0; i < len; i++) {
|
||||
fileNumber++;
|
||||
file = evt.dataTransfer.files[i];
|
||||
file.id = fileNumberPex + fileNumber;
|
||||
|
||||
//检测文件
|
||||
msg = checkFile(file);
|
||||
//文件可以通过
|
||||
if (!msg) {
|
||||
//添加全局
|
||||
filesUpload.push(file);
|
||||
//添加上传队列
|
||||
uploadQueue.push(file);
|
||||
//在页面进行展示
|
||||
fileQueued(file, 1);
|
||||
} else {
|
||||
errorMsgs.push(msg);
|
||||
}
|
||||
}
|
||||
|
||||
if (errorMsgs.length > 0) {
|
||||
//只选择做一个进行上传
|
||||
if (len == 1) {
|
||||
alert(errorMsgs[0]);
|
||||
} else {
|
||||
a1 = len;
|
||||
a2 = len - errorMsgs.length;
|
||||
|
||||
var replaceArr = new Array(a1, a2);
|
||||
alert(stringReplace(jsonLang.t7, replaceArr));
|
||||
}
|
||||
}
|
||||
|
||||
//拿出第一个,进行上传
|
||||
if (!isUploading && uploadQueue.length > 0)
|
||||
uploadFiles(uploadQueue.shift());
|
||||
}
|
||||
|
||||
function handleDragOver(evt) {
|
||||
evt.stopPropagation();
|
||||
evt.preventDefault();
|
||||
//防止多次DOM操作
|
||||
if (!isDragOver) {
|
||||
console.log("Over");
|
||||
var classList = document.getElementById("drag_area").classList;
|
||||
classList.add("wf_active");
|
||||
classList.remove("wf_normal");
|
||||
isDragOver = true;
|
||||
}
|
||||
}
|
||||
|
||||
function handleDragLeave(evt) {
|
||||
console.log("DragLeave");
|
||||
evt.stopPropagation();
|
||||
evt.preventDefault();
|
||||
isDragOver = false;
|
||||
var classList = document.getElementById("drag_area").classList;
|
||||
classList.add("wf_normal");
|
||||
classList.remove("wf_active");
|
||||
}
|
||||
|
||||
function uploadFiles(file) {
|
||||
//正在上传
|
||||
isUploading = true;
|
||||
//设置上传的数据
|
||||
var reader = new FileReader();
|
||||
reader.readAsDataURL(file);
|
||||
reader.onload = function (e) {
|
||||
var data = e.target.result;
|
||||
var fd = new FormData();
|
||||
fd.append("fileName", file.name);
|
||||
fd.append("fileData", data);
|
||||
//设置当前的上传对象
|
||||
currUploadfile = file;
|
||||
|
||||
if (XHR.readyState > 0) {
|
||||
XHR = new XMLHttpRequest();
|
||||
}
|
||||
|
||||
XHR.upload.addEventListener("progress", progress, false);
|
||||
XHR.upload.addEventListener("load", requestLoad, false);
|
||||
XHR.upload.addEventListener("error", error, false);
|
||||
XHR.upload.addEventListener("abort", abort, false);
|
||||
XHR.upload.addEventListener("loadend", loadend, false);
|
||||
XHR.upload.addEventListener("loadstart", loadstart, false);
|
||||
XHR.open("POST", config.url);
|
||||
XHR.send(fd);
|
||||
XHR.onreadystatechange = function () {
|
||||
//只要上传完成不管成功失败
|
||||
if (XHR.readyState == 4) {
|
||||
console.log("onreadystatechange ", XHR.status, +new Date());
|
||||
|
||||
if (XHR.status == 200) {
|
||||
uploadSuccess(currUploadfile, {}, XHR.status);
|
||||
} else {
|
||||
uploadError();
|
||||
}
|
||||
|
||||
//进行下一个上传
|
||||
nextUpload();
|
||||
}
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
//请求完成,无论失败或成功
|
||||
function loadend(evt) {
|
||||
console.log("loadend", +new Date(), evt);
|
||||
}
|
||||
//请求开始
|
||||
function loadstart(evt) {
|
||||
console.log("loadstart", evt);
|
||||
}
|
||||
|
||||
//在请求发送或接收数据期间,在服务器指定的时间间隔触发。
|
||||
function progress(evt) {
|
||||
uploadProgress(currUploadfile, evt.loaded || evt.position, evt.total);
|
||||
}
|
||||
|
||||
//在请求被取消时触发,例如,在调用 abort() 方法时。
|
||||
function abort(evt) {
|
||||
console.log("abort", evt);
|
||||
}
|
||||
|
||||
//在请求失败时触发。
|
||||
function error(evt) {
|
||||
//终止ajax请求
|
||||
XHR.abort();
|
||||
uploadError();
|
||||
nextUpload();
|
||||
}
|
||||
|
||||
//在请求成功完成时触发。
|
||||
function requestLoad(evt) {
|
||||
console.log("requestLoad", +new Date(), evt);
|
||||
}
|
||||
|
||||
//进行下一个上传
|
||||
function nextUpload() {
|
||||
isUploading = false;
|
||||
if (uploadQueue.length > 0) {
|
||||
uploadFiles(uploadQueue.shift());
|
||||
} else {
|
||||
//米有正在上传的了
|
||||
currUploadfile = {};
|
||||
}
|
||||
}
|
||||
|
||||
//上传出错误了,比如断网,
|
||||
function uploadError() {
|
||||
//移除全局变量中的,上传出错的
|
||||
removeFileFromFilesUpload(filesUpload, currUploadfile.id);
|
||||
var file = currUploadfile;
|
||||
var dd = document.createElement("dd")
|
||||
dd.innerHTML = jsonLang.t8
|
||||
document
|
||||
.getElementById("handle_button_" + file.id)
|
||||
.replaceWith(dd);
|
||||
}
|
||||
|
||||
//对外部注册的函数
|
||||
var HTML5Funs = {
|
||||
/**
|
||||
* 取消上传
|
||||
* @param string fid 文件的Id
|
||||
*/
|
||||
cancelUpload: function (fid) {
|
||||
var filesUploadKey = -1;
|
||||
var uploadQueueKey = -1;
|
||||
|
||||
//从全局中删除文件
|
||||
removeFileFromFilesUpload(filesUpload, fid);
|
||||
|
||||
//如果是正在上传的,AJAX取消
|
||||
if (currUploadfile.id == fid) {
|
||||
XHR.abort();
|
||||
} else {
|
||||
//从上传队列中移除
|
||||
removeFileFromFilesUpload(uploadQueue, fid);
|
||||
}
|
||||
},
|
||||
};
|
||||
|
||||
window.HTML5Funs = HTML5Funs;
|
||||
})("FormData" in window && "ondrop" in document.body);
|
||||
@@ -0,0 +1,111 @@
|
||||
/**
|
||||
* wifi传书功能,供客户端调用
|
||||
* 切换语言环境 addby zhongweikang@zhangyue.com 2015/09/23
|
||||
*/
|
||||
|
||||
var language; //当前语言
|
||||
var jsonEn; //英文
|
||||
var jsonZh; //中文
|
||||
|
||||
/**
|
||||
* 语言包
|
||||
*/
|
||||
jsonEn = {
|
||||
t0: "WiFi Upload",
|
||||
t1: "Documents",
|
||||
t2: "Name",
|
||||
t3: "Size",
|
||||
t4: "Operation",
|
||||
t5: "Supported Format:TXT、EPUB、UMD",
|
||||
t6: "Drag here and Drop to upload",
|
||||
t7: "You choosed [txt] files ,we only can upload [txt] of them。\nPlease choose TXT、EPUB、UMD files, file name cannot be repeated.",
|
||||
t8: "Failed",
|
||||
t9: "Cancel",
|
||||
t10: "Done",
|
||||
t11: "One of books is over 500MB",
|
||||
t12: "Bad file mode",
|
||||
t13: "File already exists",
|
||||
t14: "Canceled",
|
||||
};
|
||||
jsonZh = {
|
||||
t0: "传书",
|
||||
t1: "文档",
|
||||
t2: "名字",
|
||||
t3: "大小",
|
||||
t4: "操作",
|
||||
t5: "支持类型:TXT、EPUB、UMD",
|
||||
t6: "拖至此处上传",
|
||||
t7: "你选择了[txt]个文件,我们只能上传其中的[txt]。\n请选择 TXT、EPUB、UMD 类型的文件,文件的名字不能重复。",
|
||||
t8: "失败",
|
||||
t9: "取消",
|
||||
t10: "完成",
|
||||
t11: "上传文件不能大于500MB",
|
||||
t12: "无效的文件格式",
|
||||
t13: "文件已存在",
|
||||
t14: "已取消",
|
||||
};
|
||||
|
||||
if (navigator.language) {
|
||||
language = navigator.language;
|
||||
} else {
|
||||
language = navigator.browserLanguage;
|
||||
}
|
||||
language = language.toLowerCase(language);
|
||||
|
||||
/**
|
||||
* 切换语言
|
||||
*/
|
||||
function langSwich(s) {
|
||||
switch (s) {
|
||||
case "en-us":
|
||||
_strReplace(jsonEn);
|
||||
break;
|
||||
case "zh-cn":
|
||||
_strReplace(jsonZh);
|
||||
break;
|
||||
default:
|
||||
_strReplace(jsonEn);
|
||||
break;
|
||||
}
|
||||
}
|
||||
function _strReplace(d) {
|
||||
window.jsonLang = d; //全局变量在其他js文件中会遇到,勿删。
|
||||
for (var i in jsonLang) {
|
||||
var element = document.querySelector("[data-js=" + i + "]");
|
||||
if (element) {
|
||||
element.innerHTML = d[i];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 特殊字符串替换,例:语言包中的 t7
|
||||
* content 替换前的文本
|
||||
* replace 待插入的文本 (支持变量或数组)
|
||||
*/
|
||||
var isArray = function (obj) {
|
||||
return Object.prototype.toString.call(obj) === "[object Array]";
|
||||
};
|
||||
function stringReplace(content, replace) {
|
||||
var str = content;
|
||||
if (!str) {
|
||||
return null;
|
||||
}
|
||||
|
||||
if (isArray(replace)) {
|
||||
strs = str.split("[txt]");
|
||||
count = strs.length - 1;
|
||||
|
||||
var string = "";
|
||||
for (var i = 0; i < count; i++) {
|
||||
string = string + strs[i] + replace[i];
|
||||
}
|
||||
string = string + strs[count];
|
||||
} else {
|
||||
string = str.replace(replace, "[txt]");
|
||||
}
|
||||
return string;
|
||||
}
|
||||
|
||||
//执行
|
||||
langSwich(language);
|
||||
@@ -0,0 +1,184 @@
|
||||
/**
|
||||
* swf 上传
|
||||
*/
|
||||
var swfu;//swfupload 对象
|
||||
var swfSelectCount = 0;// 当前选中的文件数量
|
||||
|
||||
window.onload = function () {
|
||||
var settings = {
|
||||
upload_url: config.url,
|
||||
/*post_params: {"PHPSESSID" : "<?php echo session_id(); ?>"},*/
|
||||
file_size_limit: config.fileLimitSize + " B",
|
||||
file_types: "*." + config.fileTypes.split("|").join(";*."),
|
||||
|
||||
file_types_description: "All Files",
|
||||
file_upload_limit: 1000, //配置上传个数
|
||||
file_queue_limit: 0,
|
||||
custom_settings: {
|
||||
progressTarget: "fsUploadProgress",
|
||||
cancelButtonId: "btnCancel"
|
||||
},
|
||||
debug: 0,
|
||||
|
||||
button_cursor: SWFUpload.CURSOR.HAND,
|
||||
button_image_url: "i/wifi_btn_b.png",
|
||||
button_width: "240",
|
||||
button_height: "100",
|
||||
button_float: "right",
|
||||
button_placeholder_id: "spanButtonPlaceHolder",
|
||||
button_text: '<span class="theFont"></span>',
|
||||
|
||||
assume_success_timeout: 30,
|
||||
file_queued_handler: swfFileQueued,
|
||||
file_queue_error_handler: fileQueueError,
|
||||
file_dialog_complete_handler: fileDialogComplete,
|
||||
upload_start_handler: uploadStart,
|
||||
upload_progress_handler: uploadProgress,
|
||||
upload_error_handler: uploadError,
|
||||
upload_success_handler: uploadSuccess,
|
||||
upload_complete_handler: uploadComplete,
|
||||
queue_complete_handler: queueComplete
|
||||
};
|
||||
swfu = new SWFUpload(settings);
|
||||
};
|
||||
|
||||
|
||||
|
||||
//上传完成
|
||||
function uploadComplete(file, server, response) {
|
||||
//继续下一个文件的上传
|
||||
this.startUpload();
|
||||
}
|
||||
|
||||
//完成队列里的上传
|
||||
function queueComplete(numFilesUploaded) {
|
||||
|
||||
}
|
||||
|
||||
function userStartUpload(file_id) {
|
||||
swfu.startUpload(file_id);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
function fileQueueError(file, errorCode, message) {
|
||||
switch (errorCode) {
|
||||
case -100:
|
||||
//alert("Over 100 books");
|
||||
case -110:
|
||||
//alert("One of books is over 500MB");
|
||||
break;
|
||||
case -120:
|
||||
//alert("One of books is 0KB");
|
||||
break;
|
||||
}
|
||||
}
|
||||
//入列完毕
|
||||
function fileDialogComplete(numFilesSelected, numFilesQueued) {
|
||||
if (numFilesSelected > 0) {
|
||||
this.startUpload()
|
||||
}
|
||||
}
|
||||
//开始上传
|
||||
function uploadStart(file) {
|
||||
return true;
|
||||
}
|
||||
|
||||
//上传出错
|
||||
function uploadError(file, errorCode, message) {
|
||||
switch (errorCode) {
|
||||
case SWFUpload.UPLOAD_ERROR.HTTP_ERROR:
|
||||
errorMessage = "Error";
|
||||
break;
|
||||
case SWFUpload.UPLOAD_ERROR.UPLOAD_FAILED:
|
||||
errorMessage = "Failed";
|
||||
break;
|
||||
case SWFUpload.UPLOAD_ERROR.IO_ERROR:
|
||||
errorMessage = "Please open wifi upload page";
|
||||
break;
|
||||
case SWFUpload.UPLOAD_ERROR.SECURITY_ERROR:
|
||||
errorMessage = "Security error";
|
||||
break;
|
||||
case SWFUpload.UPLOAD_ERROR.UPLOAD_LIMIT_EXCEEDED:
|
||||
errorMessage = "Security error";
|
||||
break;
|
||||
case SWFUpload.UPLOAD_ERROR.FILE_VALIDATION_FAILED:
|
||||
errorMessage = "Unable to verify. Skip ";
|
||||
break;
|
||||
default:
|
||||
errorMessage = "Unhandled error";
|
||||
break;
|
||||
}
|
||||
|
||||
//从上传队列中移除
|
||||
removeFileFromFilesUpload(filesUpload, file.id)
|
||||
|
||||
errorMessage = jsonLang.t8;
|
||||
var dd = document.createElement("dd")
|
||||
dd.innerHTML = errorMessage
|
||||
document.getElementById("handle_button_" + file.id).replaceWith(dd)
|
||||
}
|
||||
|
||||
|
||||
var tmp = 0;
|
||||
var errorFile = 0;
|
||||
var errorMsgs = [];
|
||||
|
||||
function swfFileQueued(file) {
|
||||
|
||||
|
||||
//本次上传选中的文件个数
|
||||
if (swfSelectCount == 0) swfSelectCount = this.getStats().files_queued
|
||||
//检测文件
|
||||
msg = checkFile(file)
|
||||
|
||||
|
||||
//文件可以通过
|
||||
if (!msg) {
|
||||
//添加全局的队列
|
||||
filesUpload.push(file);
|
||||
//在页面进行展示
|
||||
fileQueued(file, 0)
|
||||
} else {
|
||||
//从上传队列移除,验证失败的文件
|
||||
this.cancelUpload(file.id, false)
|
||||
errorMsgs.push(msg)
|
||||
}
|
||||
|
||||
|
||||
|
||||
//队列选择完毕,初始化所有的数据
|
||||
if (++tmp == swfSelectCount) {
|
||||
|
||||
if (errorMsgs.length > 0) {
|
||||
//只选择做一个进行上传
|
||||
if (swfSelectCount == 1) {
|
||||
alert(errorMsgs[0]);
|
||||
} else {
|
||||
a1 = swfSelectCount;
|
||||
a2 = swfSelectCount - errorMsgs.length;
|
||||
|
||||
var replaceArr = new Array(a1, a2);
|
||||
alert(stringReplace(jsonLang.t7, replaceArr));
|
||||
}
|
||||
}
|
||||
|
||||
tmp = 0;
|
||||
errorFile = 0;
|
||||
swfSelectCount = 0;
|
||||
errorMsgs = []
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
var SWFFuns = {
|
||||
cancelUpload: function (fid) {
|
||||
swfu.cancelUpload(fid, false);
|
||||
}
|
||||
|
||||
}
|
||||
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user