U.CD.Other.js 8.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. 
  2. Namespace.register("U.CD.O"); //注册杂项js,以后再归类。
  3. //编辑器上传大小后台设置为10M。
  4. //上传项目图片
  5. U.CD.O.UPFile = function (SO) {
  6. var _PSO = SO.parentNode;
  7. //和论坛,博客上传一样,到临时目录。
  8. U.UP.uploading([SO], U.CD.O.UPFileAsyn, (["UCD_UP"]), "http://disk.1473.cn/USupfile.ashx?iframename=UseStudioEditor", true); //上传图片的异步处理
  9. _PSO.appendChild(SO);
  10. }
  11. //发布项目上传回调
  12. U.CD.O.UPFileAsyn = function (request) {
  13. var SO = request.context[0];
  14. request = request.value;
  15. if (request != null && isNaN(request[0])) {
  16. //if (context[0] == "headimg") { U.U.CP(request); }
  17. //else { U.Img.Create({ "Thm": request[0], "Img": request[0] }); }
  18. var _i = $("#UCD_FB_NR_IMG")[0];
  19. _i.src = US.fs + request[0]; //request[2]保存的缩略图 request[0]保存的是原图
  20. _i.style.cssText = "width:100%;height:100%;margin-left:0;border:0";
  21. _i.title = US.fs + request[0];
  22. _i.onclick = U.M.apply(this, [[U.UF.EV.stopBubble], [U.Img.Create, [([{ 'Thm': US.fs + request[2], 'Img': US.fs + request[0]}])]]]);
  23. }
  24. else { alert("你现在使用图片大小是:" + request[0] + "KB,已经超过50KB,请重新选择图片不超过50KB!"); }
  25. }
  26. //--------------------------------------------右侧树目录上传文件-----------------------------------
  27. //上传文件 优化版
  28. /*
  29. 存储模块与ufrom接口对接测试优化代码区域
  30. 实现了跨域存储文件, 方便调试 、代码简短速度快
  31. 源代码优化版本
  32. Namespace.register("U.UP");
  33. //上传变量
  34. U.UP.FTF = { "WH": {}, "FT": {}, "TF": false, "GS": "*", "EL": "" }
  35. /ml input上传
  36. U.UP.uploading = function (UDE, UCB, UCT, UAC, UTF) { //生成传输的iframe
  37. if (UDE.length > 0) {
  38. var _UDBD = document.body, _UFID = Guid.guidNoDash();
  39. 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
  40. }
  41. }
  42. //执行上传
  43. U.UP.uploadingA = function (UDE, UCB, UCT, UAC, UTF, UFID) {
  44. 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) : "");
  45. 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);
  46. (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"];
  47. 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]); }
  48. _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]); };
  49. //if (document.selection) { UDE[i].select(); document.selection.clear(); } else { UDE[i].outerHTML += ""; UDE[i].value = ""; } //清空内容
  50. }
  51. //传输回调
  52. U.UP.uploadingAsynF = function (UDOD, UCB, UDE) {
  53. try {
  54. var _UTH = UDOD.contentWindow.document.body.innerHTML; _UTH = _UTH || (UDOD.contentWindow.name != UDOD.id ? UDOD.contentWindow.name : _UTH);
  55. if (_UTH == null) { U.Alert("服务器处理繁忙,上传失败"); } //上传失败
  56. try { UDE.value = eval("0,(" + _UTH + ")"); } catch (e) { UDE.value = _UTH; } //返回的值
  57. $(UDOD).remove(); UCB(UDE); //回调
  58. }
  59. catch (e) { U.Alert("文件传输错误!"); }
  60. }
  61. //添加Flash上传按钮按钮
  62. U.UP.AddFAN = function (UDOD, UDID, UWH) {
  63. UDID = UDID || Guid.newGuid(); /ar _UDTD;
  64. if ($("object", UDOD).length == 0) {//添加Flash按钮
  65. _UDTD = $$("div", { "innerHTML": '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" class="UD_filePrew" width="' + UWH["width"] + '" height="' + UWH["height"] + '" id="' + UDID + '" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=10,0,0,0"><param name="movie" value="http://www.1473.cn/img/upload.swf" /><param name="menu" value="false" /><param name="wmode" value="Opaque" /><param name="quality" value="high" /><param name="bgcolor" value="ffffff" /><param name="allowScriptAccess" value="always" /><embed src="http://www.1473.cn/img/upload.swf" quality="high" bgcolor="ffffff" width="' + UWH["width"] + '" height="' + UWH["height"] + '" name="' + UDID + '" align="middle" play="true" wmode="transparent" loop="false" quality="high" style="z-index: 0;" allowScriptAccess="always" type="application/x-shockwave-flash" pluginspage="http://www.adobe.com/go/getflashplayer"></embed></object>' });
  66. UDOD.insertBefore(_UDTD.firstChild, UDOD.firstChild);
  67. }
  68. 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大小
  69. }
  70. */
  71. U.CD.O.TreeUPFile = function (SO) {
  72. var _PSO = SO.parentNode;
  73. var _fname = U.UP.GetUpName(SO.value); //得到文件名以及文件扩展名
  74. var _ld = U.CD.O.Loading("图片上传速度比较慢,请耐心等候.....");
  75. U.UP.uploading([SO], U.CD.O.TreeUpAsyn, ([_fname, _ld]), "http://disk.1473.cn/USupfile.ashx?iframename=UseStudioEditor", true); //上传图片的异步处理
  76. _PSO.appendChild(SO);
  77. }
  78. //右侧树上传文件回调
  79. U.CD.O.TreeUpAsyn = function (request) {
  80. var _fname = request.context[0];
  81. var _ld = request.context[1]; _ld.parentNode.removeChild(_ld); //移除进度条
  82. request = request.value;
  83. if (request != null && isNaN(request[0])) {
  84. var _content = request[2] + "|" + request[0]; //文件内容为缩略图加原图。
  85. U.CD.O.TreeImg(_fname[0], _content);
  86. }
  87. else { alert("你现在使用图片大小是:" + request[0] + "KB,已经超过5M,请重新选择图片不超过5M!"); }
  88. }
  89. //创建项目、文件夹、文件的函数,
  90. //参数为SO 为触发事件的页面元素,用户id ,node为父亲节点,input为新节点的input,不能直接传值,type为类型,文件或者目录,
  91. U.CD.O.TreeImg = function (_fname, content) {
  92. var _c = U.CD.U.IsUSelf(); //获取用户登录Cookie. _c.userid _c.username _c.Loginid
  93. if (!_c) { U.CD.U.LoginApply(); return; } //如果未登录,弹出登录窗口。
  94. var userid = _c.userid; //得到用户id
  95. var node = U.CD.U.CUser.CurrentNode, SO = U.CD.U.CUser.CurrentSO; //获取当前选中文件夹
  96. var _fid = Guid.newGuid(), _nnode; //节点基本信息,名字和id,id由前台生成。
  97. if (!U.CD.RT.VName(userid, _fname, "file")) { U.Alert("名字不符合规范或者存在同名文件!"); return; }
  98. //前台添加一个节点,数组中也要添加节点。
  99. _nnode = { "Name": _fname, "CreateDate": new Date(), "Type": "file", "ID": _fid, "Deep": parseInt(node.Deep) + 1, "IsPublic": true, "Content": content };
  100. var L = []; L.push(_nnode); //追加一个节点,传递几个参数就追加几个。这种方式不科学,以后再改。因为硬盘是这样写的。
  101. node.TNode.push(_nnode); //同时向前台json中追加数据,没有json树真麻烦啊。。做json树操作是一定的。
  102. //向前台追加树结点。//如果连续追加多个,会多出很多margin:10px父亲节点,会出问题。
  103. U.CD.RT.LV(L, SO, userid);
  104. //后台添加一个节点。传递了用户id,根元素id,根元素深度,新节点guid,新节点名字。
  105. U.ACD.Request(U.CD.AjaxUrl, (["Add_File", userid, node.ID, node.Deep, _nnode.ID, _nnode.Name, content]), U.CD.RT.CP_OKAsyn, ([""]));
  106. }
  107. //加载Loading提示。参数为提示的字符
  108. U.CD.O.Loading = function (s) {
  109. var _ld = U.CD.Loading.cloneNode(true); _ld.style.display = "none"; _ld.innerHTML = s; _ld.uscustom = true; //给loading一个特殊标记(自定义),表示不用主项目的loading效果,自定义
  110. $$("span", { "className": "UCD_LC_X", "innerHTML": "X", onclick: function () { this.parentNode.parentNode.removeChild(this.parentNode); } }, _ld); //追加关闭按钮
  111. document.body.appendChild(_ld);
  112. U.D.PopupWindow(_ld); //保证至于顶层。如需要,可以再加一个mousedown,还可以拖动,并随时至于顶层,暂时不添加了
  113. return _ld; //返回回去,用于删除
  114. }
  115. //取消loading由主项目统一处理。