Namespace.register("U.CD.O"); //注册杂项js,以后再归类。 //编辑器上传大小后台设置为10M。 //上传项目图片 U.CD.O.UPFile = function (SO) { var _PSO = SO.parentNode; //和论坛,博客上传一样,到临时目录。 U.UP.uploading([SO], U.CD.O.UPFileAsyn, (["UCD_UP"]), "http://disk.1473.cn/USupfile.ashx?iframename=UseStudioEditor", true); //上传图片的异步处理 _PSO.appendChild(SO); } //发布项目上传回调 U.CD.O.UPFileAsyn = function (request) { var SO = request.context[0]; request = request.value; if (request != null && isNaN(request[0])) { //if (context[0] == "headimg") { U.U.CP(request); } //else { U.Img.Create({ "Thm": request[0], "Img": request[0] }); } var _i = $("#UCD_FB_NR_IMG")[0]; _i.src = US.fs + request[0]; //request[2]保存的缩略图 request[0]保存的是原图 _i.title = US.fs + request[0]; _i.style.cssText = "width:100%;height:100%;margin-left:0;border:0"; _i.onclick = U.M.apply(this, [[U.M.StopBubble], [U.Img.Create, [([{ 'Thm': US.fs + request[2], 'Img': US.fs + request[0]}])]]]); } else { alert("你现在使用图片大小是:" + request[0] + "KB,已经超过50KB,请重新选择图片不超过50KB!"); } } //--------------------------------------------右侧树目录上传文件----------------------------------- //上传文件 优化版 /* 存储模块与ufrom接口对接测试优化代码区域 实现了跨域存储文件, 方便调试 、代码简短速度快 源代码优化版本 Namespace.register("U.UP"); //上传变量 U.UP.FTF = { "WH": {}, "FT": {}, "TF": false, "GS": "*", "EL": "" } /ml input上传 U.UP.uploading = function (UDE, UCB, UCT, UAC, UTF) { //生成传输的iframe if (UDE.length > 0) { var _UDBD = document.body, _UFID = Guid.guidNoDash(); U.M.IFO($$("iframe", { "id": _UFID, "name": _UFID, "width": 0, "height": 0, "style": { "display": "none" }, "frameBorder": 0 }, _UDBD), "", [[U.UP.uploadingA, ([UDE, UCB, UCT, UAC, UTF, _UFID])]]); //生成可访问的iframe } } //执行上传 U.UP.uploadingA = function (UDE, UCB, UCT, UAC, UTF, UFID) { this.contentWindow.name = UFID; UDE = U.M.isArray(UDE) ? UDE : Array.prototype.slice.apply(UDE); UAC = UAC + (UAC.indexOf("?") > -1 ? "" : "?") + ((US && US.userinfo && US.userinfo.UserId) || US.userinfo.UserId ? "&UserId=" + (US.userinfo.UserId || US.userinfo.UserId) : ""); var i = 0, _UL = UDE.length, _UCE = [], _UCB = UCB, _UDBD = document.body, _URE = { "UpObj": UDE, "context": UCT, "value": "" }, _UDFD = $$("form", { "action": UAC, "target": UFID, "encoding": "multipart/form-data", "enctype": "multipart/form-data", "method": "post", "name": "loading", "style": { "display": "none"} }, _UDBD); (UTF) && (_UL = 1, _URE["UpObj"] = UDE.splice(0, 1), _UCB = U.M.apply(this, [[UCB, ([_URE])], [U.UP.uploading, ([UDE, UCB, UCT, UAC, UTF])]])); UDE = _URE["UpObj"]; for (i; i < _UL; i++) { UDE[i].name = UDE[i].name || UDE[i].id || Guid.newGuid(); _UCE.push($(UDE[i]).replaceC($$("div"))[0]); _UDFD.appendChild(UDE[i]); } _UDFD.submit(); this.complete = ""; U.MD.IframeLoad(this, [[U.UP.uploadingAsynF, ([this, _UCB, _URE])]]); $(_UDFD).remove(); for (i = 0; i < _UL; i++) { $(_UCE[i]).replaceC(UDE[i]); }; //if (document.selection) { UDE[i].select(); document.selection.clear(); } else { UDE[i].outerHTML += ""; UDE[i].value = ""; } //清空内容 } //传输回调 U.UP.uploadingAsynF = function (UDOD, UCB, UDE) { try { var _UTH = UDOD.contentWindow.document.body.innerHTML; _UTH = _UTH || (UDOD.contentWindow.name != UDOD.id ? UDOD.contentWindow.name : _UTH); if (_UTH == null) { U.Alert("服务器处理繁忙,上传失败"); } //上传失败 try { UDE.value = eval("0,(" + _UTH + ")"); } catch (e) { UDE.value = _UTH; } //返回的值 $(UDOD).remove(); UCB(UDE); //回调 } catch (e) { U.Alert("文件传输错误!"); } } //添加Flash上传按钮按钮 U.UP.AddFAN = function (UDOD, UDID, UWH) { UDID = UDID || Guid.newGuid(); /ar _UDTD; if ($("object", UDOD).length == 0) {//添加Flash按钮 _UDTD = $$("div", { "innerHTML": '' }); UDOD.insertBefore(_UDTD.firstChild, UDOD.firstChild); } return (U.UP.FTF["EL"] = $("*" + UDID, UDOD).addAttrArray({ "width": UWH["width"] ? UWH["width"] : 1, "height": UWH["height"] ? UWH["height"] : 1, "style": { "display": "block"} })[0]); //设置Flash大小 } */ U.CD.O.TreeUPFile = function (SO) { var _PSO = SO.parentNode; var _fname = U.UP.GetUpName(SO.value); //得到文件名以及文件扩展名 var _ld = U.CD.O.Loading("图片上传速度比较慢,请耐心等候....."); U.UP.uploading([SO], U.CD.O.TreeUpAsyn, ([_fname,_ld]), "http://disk.1473.cn/USupfile.ashx?iframename=UseStudioEditor", true); //上传图片的异步处理 _PSO.appendChild(SO); } //右侧树上传文件回调 U.CD.O.TreeUpAsyn = function (request) { var _fname = request.context[0]; var _ld = request.context[1]; _ld.parentNode.removeChild(_ld);//移除进度条 request = request.value; if (request != null && isNaN(request[0])) { var _content = request[2] + "|" + request[0]; //文件内容为缩略图加原图。 U.CD.O.TreeImg(_fname[0], _content); } else { alert("你现在使用图片大小是:" + request[0] + "KB,已经超过5M,请重新选择图片不超过5M!"); } } //创建项目、文件夹、文件的函数, //参数为SO 为触发事件的页面元素,用户id ,node为父亲节点,input为新节点的input,不能直接传值,type为类型,文件或者目录, U.CD.O.TreeImg = function (_fname,content) { var _c = U.CD.U.IsUSelf(); //获取用户登录Cookie. _c.userid _c.username _c.Loginid if (!_c) { U.CD.U.LoginApply(); return; } //如果未登录,弹出登录窗口。 var userid = _c.userid; //得到用户id var node = U.CD.U.CUser.CurrentNode, SO = U.CD.U.CUser.CurrentSO; //获取当前选中文件夹 var _fid = Guid.newGuid(), _nnode; //节点基本信息,名字和id,id由前台生成。 if (!U.CD.RT.VName(userid, _fname, "file")) { alert("名字不符合规范或者存在同名文件!"); return; } //前台添加一个节点,数组中也要添加节点。 _nnode = { "Name": _fname, "CreateDate": new Date(), "Type": "file", "ID": _fid, "Deep": parseInt(node.Deep) + 1, "IsPublic": true, "Content":content }; var L = []; L.push(_nnode); //追加一个节点,传递几个参数就追加几个。这种方式不科学,以后再改。因为硬盘是这样写的。 node.TNode.push(_nnode); //同时向前台json中追加数据,没有json树真麻烦啊。。做json树操作是一定的。 //向前台追加树结点。//如果连续追加多个,会多出很多margin:10px父亲节点,会出问题。 U.CD.RT.LV(L, SO, userid); //后台添加一个节点。传递了用户id,根元素id,根元素深度,新节点guid,新节点名字。 U.ACD.Request(U.CD.AjaxUrl, (["Add_File", userid, node.ID, node.Deep, _nnode.ID, _nnode.Name,content]), U.CD.RT.CP_OKAsyn, ([""])); } //加载Loading提示。参数为提示的字符 U.CD.O.Loading = function (s) { var _ld = U.CD.Loading.cloneNode(true); _ld.style.display = "none"; _ld.innerHTML = s; _ld.uscustom = true; //给loading一个特殊标记(自定义),表示不用主项目的loading效果,自定义 $$("span", { "className": "UCD_LC_X","innerHTML":"X", onclick: function () { this.parentNode.parentNode.removeChild(this.parentNode); } }, _ld); //追加关闭按钮 document.body.appendChild(_ld); U.D.PopupWindow(_ld); //保证至于顶层。如需要,可以再加一个mousedown,还可以拖动,并随时至于顶层,暂时不添加了 return _ld; //返回回去,用于删除 } //取消loading由主项目统一处理。