Няма описание
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

upload_product.htm 8.6KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213
  1. <html lang="zh-cn">
  2. <head>
  3. <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
  4. <title>文件管理</title>
  5. <link rel="stylesheet" type="text/css" href="__PUBLIC__/plugins/webuploader/webuploader.css?v={$version|default='1.2.9'}">
  6. <link rel="stylesheet" type="text/css" href="__PUBLIC__/plugins/webuploader/css/style.css?v={$version|default='1.2.9'}">
  7. <script type="text/javascript">
  8. var eyou_basefile = "{$Request.baseFile}";
  9. var module_name = "{$Think.const.MODULE_NAME}";
  10. var __root_dir__ = "__ROOT_DIR__";
  11. </script>
  12. </head>
  13. <body>
  14. <div class="upload-box">
  15. <!-- <ul class="tabs">
  16. <li class="checked" id="upload_tab">本地上传</li>
  17. <li id="manage_tab">在线管理</li>
  18. <li id="search_tab">文件搜索</li>
  19. </ul> -->
  20. <div class="container">
  21. <div class="area upload-area area-checked" id="upload_area">
  22. <div id="uploader">
  23. <div class="statusBar" style="display:none;">
  24. <div class="progress">
  25. <span class="text">0%</span>
  26. <span class="percentage"></span>
  27. </div><div class="info"></div>
  28. <div class="btns">
  29. <div id="filePicker2"></div><div class="uploadBtn">开始上传</div>
  30. <div class="saveBtn">确定使用</div>
  31. </div>
  32. </div>
  33. <div class="queueList">
  34. <div id="dndArea" class="placeholder">
  35. <div id="filePicker"></div>
  36. <p>或将文件拖到这里,本次最多可选{$field.num|default=1}个</p>
  37. </div>
  38. </div>
  39. </div>
  40. </div>
  41. <div class="area manage-area" id="manage_area">
  42. <ul class="choose-btns">
  43. <li class="btn sure checked">确定</li>
  44. <li class="btn cancel">取消</li>
  45. </ul>
  46. <div class="file-list">
  47. <ul id="file_all_list">
  48. <!--<li class="checked">
  49. <div class="img">
  50. <img src="" />
  51. <span class="icon"></span>
  52. </div>
  53. <div class="desc"></div>
  54. </li>-->
  55. </ul>
  56. </div>
  57. </div>
  58. <div class="area search-area" id="search_area">
  59. <ul class="choose-btns">
  60. <li class="search">
  61. <div class="search-condition">
  62. <input class="key" type="text" />
  63. <input class="submit" type="button" hidefocus="true" value="搜索" />
  64. </div>
  65. </li>
  66. <li class="btn sure checked">确定</li>
  67. <li class="btn cancel">取消</li>
  68. </ul>
  69. <div class="file-list">
  70. <ul id="file_search_list">
  71. <!--<li>
  72. <div class="img">
  73. <img src="" />
  74. <span class="icon"></span>
  75. </div>
  76. <div class="desc"></div>
  77. </li>-->
  78. </ul>
  79. </div>
  80. </div>
  81. <div class="fileWarp" style="display:none;">
  82. <fieldset>
  83. <legend>列表</legend>
  84. <ul>
  85. </ul>
  86. </fieldset>
  87. </div>
  88. </div>
  89. </div>
  90. {load href="__STATIC__/common/js/jquery.min.js" /}
  91. <script type="text/javascript" src="__PUBLIC__/plugins/webuploader/webuploader.min.js?v={$version|default='1.2.9'}"></script>
  92. <script type="text/javascript" src="__PUBLIC__/plugins/webuploader/upload.js?v={$version|default='1.2.9'}"></script>
  93. <script type="text/javascript" src="__PUBLIC__/plugins/layer-v3.1.0/layer.js?v={$version|default='1.2.9'}"></script>
  94. <script type="text/javascript">
  95. $(function(){
  96. var config = {
  97. "swf":"__PUBLIC__/plugins/webuploader/Uploader.swf",
  98. "server":"{$field.upload}",
  99. "filelistPah":"{$field.fileList}",
  100. "delPath":"{:url('Uploadify/delupload')}",
  101. "chunked":false,
  102. "chunkSize":524288,
  103. "fileNumLimit":{$field.num|default=1},
  104. "fileSizeLimit":209715200,
  105. "fileSingleSizeLimit":{$field.size},
  106. "fileVal":"file",
  107. "auto":true,
  108. "formData":{},
  109. "duplicate": true, // 允许上传重复文件
  110. "pick":{"id":"#filePicker","label":"点击选择图片","name":"file"},
  111. "thumb":{"width":110,"height":110,"quality":70,"allowMagnify":true,"crop":true,"preserveHeaders":false,"type":"image\/jpeg"},
  112. "compress": {
  113. "width": 380000,
  114. "height": 380000,
  115. "quality": 100,
  116. "allowMagnify": false,
  117. "crop": false,
  118. "preserveHeaders": true
  119. }
  120. };
  121. Manager.upload($.extend(config, {type : "Images"}));
  122. /*点击保存按钮时
  123. *判断允许上传数,检测是单一文件上传还是组文件上传
  124. *如果是单一文件,上传结束后将地址存入$input元素
  125. *如果是组文件上传,则创建input样式,添加到$input后面
  126. *隐藏父框架,清空列队,移除已上传文件样式*/
  127. $(".statusBar .saveBtn").click(function(){
  128. var aid = {$field.aid};
  129. var callback = "{$field.func}";
  130. var num = {$field.num|default=1};
  131. var fileurl_tmp = [];
  132. if(callback != "undefined"){
  133. if(num > 1){
  134. $("input[name^='fileurl_tmp']").each(function(index,dom){
  135. /*禁止篡改上传图片为远程地址*/
  136. remsg = checkUrl(dom.value);
  137. if (remsg) {
  138. window.parent.layer.closeAll();
  139. window.parent.layer.msg(remsg, {icon: 2,time: 1500});
  140. return false;
  141. }
  142. /*--end*/
  143. fileurl_tmp[index] = dom.value;
  144. });
  145. }else{
  146. fileurl_tmp = $("input[name^='fileurl_tmp']").val();
  147. /*禁止篡改上传图片为远程地址*/
  148. remsg = checkUrl(fileurl_tmp);
  149. if (remsg) {
  150. window.parent.layer.closeAll();
  151. window.parent.layer.msg(remsg, {icon: 2,time: 1500});
  152. return false;
  153. }
  154. /*--end*/
  155. }
  156. /*防止图片上传过程中用户点击确定,导致获取图片失败 by 小虎哥*/
  157. if (fileurl_tmp == undefined || fileurl_tmp.length == 0) {
  158. layer.msg('正在处理……', {icon: 6,time: 2000});
  159. return false;
  160. }
  161. /*--end*/
  162. eval('window.parent.'+callback+'(fileurl_tmp)');
  163. upload_save_product(aid, fileurl_tmp);
  164. return;
  165. }
  166. if(num > 1){
  167. var fileurl_tmp = "";
  168. $("input[name^='fileurl_tmp']").each(function(){
  169. fileurl_tmp += '<li rel="'+ this.value +'"><input class="input-text" type="text" name="{$field.input}[]" value="'+ this.value +'" /><a href="javascript:void(0);" onclick="ClearPicArr(\''+ this.value +'\',\'\')">删除</a></li>';
  170. });
  171. $(window.parent.document).find("#{$field.input}").append(fileurl_tmp);
  172. }else{
  173. $(window.parent.document).find("#{$field.input}").val($("input[name^='fileurl_tmp']").val());
  174. }
  175. window.parent.layer.closeAll();
  176. });
  177. function checkUrl(urlString){
  178. var remsg = false;
  179. if (urlString != "") {
  180. var reg = /^((\w)*:)?(\/\/).*$/;
  181. if(reg.test(urlString)){
  182. remsg = '禁止篡改上传图片为远程地址!';
  183. }
  184. }
  185. return remsg;
  186. }
  187. function upload_save_product(aid, a)
  188. {
  189. $.ajax({
  190. type: "POST",
  191. url: "{:url('Product/ajax_save_productimg', ['_ajax'=>1])}",
  192. data: {proimg:a, aid:aid},
  193. dataType: 'json',
  194. success: function (data) {
  195. if(data.status == 1){
  196. window.parent.layer.closeAll();
  197. window.parent.location.reload();
  198. }else{
  199. layer.alert(data.msg, {icon: 5,time: 3000, title:false});
  200. }
  201. },
  202. error: function(e){
  203. layer.alert(e.responseText, {icon: 5,time: 3000, title:false});
  204. }
  205. });
  206. }
  207. });
  208. </script>
  209. </body>
  210. </html>