jQuery(function() { function e(e) { var a = o('
  • ' + e.name + '

  • '), s = o('
    删除向右旋转向左旋转
    ').appendTo(a), i = a.find("p.progress span"), t = a.find("p.imgWrap"), r = o('

    '), d = function(e) { switch (e) { case "exceed_size": text = "文件大小超出限制"; break; case "interrupt": text = "上传暂停"; break; default: text = "上传失败,请重试" } r.text(text).appendTo(a) }; "invalid" === e.getStatus() ? d(e.statusText) : (t.text("预览中"), n.makeThumb(e, function(e, a) { if (e) return void t.text("不能预览"); var s = o(''); t.empty().append(s) }, v, b), w[e.id] = [e.size, 0], e.rotation = 0), e.on("statuschange", function(t, n) { "progress" === n ? i.hide().width(0) : "queued" === n && (a.off("mouseenter mouseleave"), s.remove()), "error" === t || "invalid" === t ? (console.log(e.statusText), d(e.statusText), w[e.id][1] = 1) : "interrupt" === t ? d("interrupt") : "queued" === t ? w[e.id][1] = 0 : "progress" === t ? (r.remove(), i.css("display", "block")) : "complete" === t && a.append(''), a.removeClass("state-" + n).addClass("state-" + t) }), a.on("mouseenter", function() { s.stop().animate({ height: 30 }) }), a.on("mouseleave", function() { s.stop().animate({ height: 0 }) }), s.on("click", "span", function() { var a, s = o(this).index(); switch (s) { case 0: return void n.removeFile(e); case 1: e.rotation += 90; break; case 2: e.rotation -= 90 } x ? (a = "rotate(" + e.rotation + "deg)", t.css({ "-webkit-transform": a, "-mos-transform": a, "-o-transform": a, transform: a })) : t.css("filter", "progid:DXImageTransform.Microsoft.BasicImage(rotation=" + ~~ (e.rotation / 90 % 4 + 4) % 4 + ")") }), a.appendTo(l) } function a(e) { var a = o("#" + e.id); delete w[e.id], s(), a.off().find(".file-panel").off().end().remove() } function s() { var e, a = 0, s = 0, t = f.children(); o.each(w, function(e, i) { s += i[0], a += i[0] * i[1] }), e = s ? a / s: 0, t.eq(0).text(Math.round(100 * e) + "%"), t.eq(1).css("width", Math.round(100 * e) + "%"), i() } function i() { var e, a = ""; "ready" === k ? a = "选中" + m + "张图片,共" + WebUploader.formatSize(h) + "。": "confirm" === k ? (e = n.getStats(), e.uploadFailNum && (a = "已成功上传" + e.successNum + "张照片," + e.uploadFailNum + '张照片上传失败,重新上传失败图片或忽略')) : (e = n.getStats(), a = "共" + m + "张(" + WebUploader.formatSize(h) + "),已上传" + e.successNum + "张", e.uploadFailNum && (a += ",失败" + e.uploadFailNum + "张")), p.html(a) } function t(e) { var a; if (e !== k) { switch (c.removeClass("state-" + k), c.addClass("state-" + e), k = e) { case "pedding": u.removeClass("element-invisible"), l.parent().removeClass("filled"), l.hide(), d.addClass("element-invisible"), n.refresh(); break; case "ready": u.addClass("element-invisible"), o("#filePicker2").removeClass("element-invisible"), l.parent().addClass("filled"), l.show(), d.removeClass("element-invisible"), n.refresh(); break; case "uploading": o("#filePicker2").addClass("element-invisible"), f.show(), c.text("暂停上传"); break; case "paused": f.show(), c.text("继续上传"); break; case "confirm": //处理上传完成事件 if (f.hide(), c.text("开始上传").addClass("disabled"), a = n.getStats(), a.successNum && !a.uploadFailNum) return void t("finish"); break; case "finish": //上传完成后执行 a = n.getStats(), a.successNum ? alert("上传成功") : (k = "done", location.reload()); o("#filePicker2").removeClass("element-invisible"); c.text("再次上传").removeClass("disabled"); n.refresh(); break; } i() } } function fpost(data,url){ //异步提交文件上传成功后获取的JSON字符串解析传到指定的网址,以便进行下一步的处理 jQuery.post(url,data,function(res){ console.log(res); res = $.parseJSON(res); var img = res.path; $('#callback').val(img); //将刚上传成功的图片显示到现有列表中 var parentFunc = "parent.selectImage('这是您刚刚上传的图片','"+img+"','');"; var $img = '
    '+ '
    '+ '新上传图片'+ '
    '+ '
    '; $('#imageList').prepend($img); }); } var n, o = jQuery, r = o("#uploader"), l = o('').appendTo(r.find(".queueList")), d = r.find(".statusBar"), p = d.find(".info"), c = r.find(".uploadBtn"), u = r.find(".placeholder"), f = d.find(".progress").hide(), m = 0, h = 0, g = window.devicePixelRatio || 1, v = 110 * g, b = 110 * g, k = "pedding", w = {}, x = function() { var e = document.createElement("p").style, a = "transition" in e || "WebkitTransition" in e || "MozTransition" in e || "msTransition" in e || "OTransition" in e; return e = null, a } (); if (!WebUploader.Uploader.support()) throw alert("Web Uploader 不支持您的浏览器!如果你使用的是IE浏览器,请尝试升级 flash 播放器"), new Error("WebUploader does not support the browser you are using."); //初始化上传组件 n = WebUploader.create({ pick: { id: "#filePicker", innerHTML: UPLOAD_BUTTON_LABEL }, dnd: "#uploader .queueList", paste: document.body, accept: { title: UPLOAD_ACCEPT_TITLE, extensions: UPLOAD_ACCEPT_EXTENSIONS, mimeTypes: UPLOAD_ACCEPT_FILETYPE }, swf: UPLOAD_BASE_URL + "/Uploader.swf", disableGlobalDnd: !0, chunked: true, //开启分片上传 duplicate: true, //去重 server: UPLOAD_SERVER_URL, fileNumLimit: UPLOAD_MAX_NUM, fileSizeLimit: UPLOAD_TOTAL_SIZE, fileSingleSizeLimit: UPLOAD_MAX_SIZE //单张图大小限制 }), n.addButton({ id: "#filePicker2", label: "继续添加" }), n.onUploadProgress = function(e, a) { var i = o("#" + e.id), t = i.find(".progress span"); t.css("width", 100 * a + "%"), w[e.id][1] = a, s() }, n.onFileQueued = function(a) { m++, h += a.size, 1 === m && (u.addClass("element-invisible"), d.show()), e(a), t("ready"), s() }, n.onFileDequeued = function(e) { m--, h -= e.size, m || t("pedding"), a(e), s() }, n.on("all", function(e) { switch (e) { case "uploadFinished": t("confirm"); break; case "startUpload": t("uploading"); break; case "stopUpload": t("paused"); break; } }), n.onError = function(e) { alert("Error: " + e) }, n.on("uploadSuccess", function($file,$res){ //$file,当前上传的文件信息 console.log($file); //$res,服务器返回的信息(服务端返回了文件路径跟链接等信息) console.log($res); $res = $res._raw; console.log($res); $res = $res + '}'; console.log($res); $res = $.parseJSON($res); //由JSON字符串转换为JSON对象 console.log($res); var res = $res.result; console.log(res); $('#callback-title').html(res.name); if(UPLOAD_JSON_POST_URL){ res.size = $file.size; res.type = $file.type; res.lasttime = $file.lastModifiedDate; res.ext = $file.ext; res.params = $file._info; fpost(res,UPLOAD_JSON_POST_URL); } } ), c.on("click", function() { return o(this).hasClass("disabled") ? !1 : void("ready" === k ? n.upload() : "paused" === k ? n.upload() : "uploading" === k && n.stop()) }), p.on("click", ".retry", function() { n.retry() }), p.on("click", ".ignore", function(e) { alert("好的"); console.log('取消了已经上传失败的文件'); }), c.addClass("state-" + k), s() });