file_upload_case.js 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206
  1. var upload;
  2. var fileIdArray = "";
  3. var update_flag = "0";//附件操作权限标示,0:编辑 1:查询
  4. //设置默认的上传文件格式
  5. var filetypes="*.mp4;*.wmv;*.zip;*.rar;*.jpg;*.jpeg;*.gif;*.png;*.txt;*.doc;*.docx;*.ppt;*.pptx;*.xls;*.xlsx;*.pdf";
  6. //设置默认的文件大小
  7. var file_size_limit="10240000";
  8. //设置默认文件数量
  9. var file_upload_limit="10";
  10. //设置默认上传文件队列数
  11. var file_queue_limit="10";
  12. function fileUpload() {
  13. upload = new SWFUpload(
  14. {
  15. // 提交路径
  16. upload_url : prjContextPath+ "/fileUploadAction!fileUpload.action",
  17. file_post_name : "file",
  18. // 向后台传递额外的参数
  19. // post_params: {"id":"11111"},
  20. // 下面自己按照字面意思理解
  21. file_size_limit : file_size_limit, // 100MB 文件最大上限
  22. file_types : filetypes,
  23. file_types_description : "请选取需要上传的文件,格式如下:",
  24. file_upload_limit : file_upload_limit,// 上传最大文件数
  25. file_queue_limit : file_queue_limit,// 最大队列数
  26. // 事件处理
  27. file_dialog_start_handler : fileDialogStart,
  28. file_queued_handler : fileQueued,
  29. file_queue_error_handler : fileQueueError,
  30. file_dialog_complete_handler : fileDialogComplete,
  31. upload_start_handler : uploadStart,
  32. upload_progress_handler : uploadProgress,
  33. upload_error_handler : uploadError,
  34. // 上传成功后执行方法:fileObj可获取file.id、file.name、file.size等;server_data为后台传递参数。
  35. upload_success_handler : function myUploadSuccess(fileObj,
  36. server_data) {
  37. fileIdArray+=(server_data+",");
  38. try {
  39. var progress = new FileProgress(fileObj,
  40. this.customSettings.progressTarget);
  41. progress.setComplete();
  42. var fileSize = fileObj.size;
  43. var i = 0;
  44. while (fileSize > 1024 && i < 2) {
  45. fileSize = fileSize / 1024;
  46. i++;
  47. }
  48. var sizeDW;
  49. if (i == 0)
  50. sizeDW = "B";
  51. else if (i == 1)
  52. sizeDW = "K";
  53. else if (i == 2)
  54. sizeDW = "M";
  55. progress.setStatus(toDecimal2(fileSize) + sizeDW+ " 上传完成");
  56. progress.toggleCancel(false);
  57. var filelist = document.getElementById("progressContainer"+ fileObj.id);
  58. filelist.style.paddingLeft = "50px";
  59. filelist.style.background = "#F0F5FF url('"+ prjContextPath + "/swfUpload/file-icon/"+ fileObj.type.replace('.', '')+ ".png') no-repeat 5px 5px";
  60. // 删除附件按钮
  61. var deleteObject = document.createElement("a");
  62. deleteObject.className = "myProgressBt";
  63. deleteObject.href = "javascript:void(0);";
  64. deleteObject.appendChild(document.createTextNode("删除"));
  65. deleteObject.onclick = function() {
  66. //删除方法,server_data为后台返回的文件id或业务id
  67. this.parentNode.parentNode.style.display = 'none';
  68. var idObj = document.getElementById("arrId"+ fileObj.id);
  69. idObj.parentNode.removeChild(idObj);
  70. delFile(server_data);
  71. }
  72. filelist.appendChild(deleteObject);
  73. // action 返回的附件ID
  74. var idObj = document.createElement("input");
  75. idObj.setAttribute("type", "hidden");
  76. idObj.setAttribute("name", "arrId");
  77. idObj.setAttribute("value", server_data);
  78. idObj.setAttribute("id", "arrId" + fileObj.id);
  79. filelist.appendChild(idObj);
  80. var clearObj = document.createElement("div");
  81. clearObj.className = "clear";
  82. filelist.appendChild(clearObj);
  83. } catch (ex) {
  84. this.debug(ex);
  85. }
  86. },
  87. upload_complete_handler : uploadComplete,
  88. // 按钮的处理
  89. button_image_url : prjContextPath+ "/swfUpload/images/XPButtonUploadText_61x22.png",
  90. button_placeholder_id : "spanButtonPlaceholder1",
  91. button_width : 100,
  92. button_height : 26,
  93. // Flash Settings
  94. flash_url : prjContextPath + "/swfUpload/swfupload.swf",
  95. custom_settings : {
  96. progressTarget : "fsUploadProgress1",
  97. cancelButtonId : "btnCancel1"
  98. },
  99. // Debug Settings
  100. debug : false
  101. });
  102. if('1'==update_flag)
  103. $("#div_del").remove() ;
  104. }
  105. /*文件删除*/
  106. function delFile(server_data) {
  107. if (confirm("真的要删除此附件吗?删除后此附件将被删除并且无法恢复!")){
  108. $("#fileView"+server_data).remove();
  109. $.post(prjContextPath + "/fileUploadAction!delteFolder.action", {
  110. fileIdArray : server_data
  111. });
  112. }
  113. }
  114. /*文件显示回调函数开始*/
  115. var fileList=[];
  116. //备课及听评课需要,存储附件的主键ID
  117. var fileidLst=[];
  118. function callBackFunQueryFile(json){
  119. if(json!=null && json.data!=null){
  120. for (var i = 0; i < json.data.length; i++) {
  121. var pData=json.data[i];
  122. fileList.push(pData.fileid);
  123. //获取文件id
  124. fileIdArray+= pData.fileid+',';
  125. //获取json返回的路径和文件名,下载使用,此处下载需修改tomcat编码为utf-8,在server.xml中修改URIEncoding="utf-8"
  126. var f_path=pData.filepath+"/"+pData.fileLSMC;
  127. //文件下载目录
  128. var downpath=filepath+f_path;
  129. //文件回显
  130. var queryFile = '<div class="progressWrapper" id="fileView'+pData.fileid+'" style="filter: progid:DXImageTransform.Microsoft.Alpha(opacity=100);"><div class="progressContainer blue" id='+pData.fileid+' FP_TIMER="null">';
  131. queryFile+= '<div class="progressName" id='+pData.fileid+'>'+pData.filename+'&nbsp;&nbsp;&nbsp;';
  132. if("0"==update_flag)
  133. queryFile += "<a href='#' onclick = 'delFile("+pData.fileid+")'>删除</a>&nbsp;<span>|</span>&nbsp;";
  134. queryFile+= '<a href="'+downpath+'" target="_blank">下载</a></div></div></div>';
  135. $("#fsUploadProgress1").append(queryFile);
  136. //显示文件类型
  137. var fileView = document.getElementById('fileView'+pData.fileid);
  138. fileView.style.paddingLeft="50px";
  139. fileView.style.background="#F0F5FF url('"+prjContextPath+"/swfUpload/file-icon/"+pData.fileType.replace('.','')+".png') no-repeat 10px 10px";
  140. }
  141. }
  142. }
  143. /*文件显示回调函数开始*/
  144. function callBackFunQueryFile_sel(json){
  145. $("#mytr").hide();
  146. if(json!=null && json.data!=null){
  147. for (var i = 0; i < json.data.length; i++) {
  148. var pData=json.data[i];
  149. //获取文件id
  150. fileIdArray+= pData.fileid+',';
  151. //获取json返回的路径和文件名,下载使用,此处下载需修改tomcat编码为utf-8,在server.xml中修改URIEncoding="utf-8"
  152. var f_path=pData.filepath+"/"+pData.fileLSMC;
  153. //文件下载目录
  154. var downpath=filepath+f_path;
  155. //文件回显
  156. var queryFile = '<div class="progressWrapper" id="fileView'+pData.fileid+'" style="filter: progid:DXImageTransform.Microsoft.Alpha(opacity=100);"><div class="progressContainer blue" id='+pData.fileid+' FP_TIMER="null">';
  157. queryFile+= '<div class="progressName" id='+pData.fileid+'>'+pData.filename+'&nbsp;&nbsp;&nbsp;';
  158. if("0"==update_flag)
  159. queryFile += "&nbsp;";
  160. queryFile+= '<a href="'+downpath+'" target="_blank">下载</a></div></div></div>';
  161. $("#fsUploadProgress1").append(queryFile);
  162. //显示文件类型
  163. var fileView = document.getElementById('fileView'+pData.fileid);
  164. fileView.style.paddingLeft="50px";
  165. fileView.style.background="#F0F5FF url('"+prjContextPath+"/swfUpload/file-icon/"+pData.fileType.replace('.','')+".png') no-repeat 10px 10px";
  166. }
  167. }
  168. }
  169. /*文件显示回调函数结束*/
  170. // 制保留2位小数,如:2,会在2后面补上00.即2.00
  171. function toDecimal2(x) {
  172. var f = parseFloat(x);
  173. if (isNaN(f)) {
  174. return false;
  175. }
  176. var f = Math.round(x * 100) / 100;
  177. var s = f.toString();
  178. var rs = s.indexOf('.');
  179. if (rs < 0) {
  180. rs = s.length;
  181. s += '.';
  182. }
  183. while (s.length <= rs + 2) {
  184. s += '0';
  185. }
  186. return s;
  187. }