截流自动化的商城平台
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.

demo2.html 6.2KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title>功能演示二 - 上传组件</title>
  6. <meta name="renderer" content="webkit">
  7. <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  8. <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
  9. <link rel="stylesheet" href="../../../layuiadmin/layui/css/layui.css" media="all">
  10. <link rel="stylesheet" href="../../../layuiadmin/style/admin.css" media="all">
  11. </head>
  12. <body>
  13. <div class="layui-card layadmin-header">
  14. <div class="layui-breadcrumb" lay-filter="breadcrumb">
  15. <a lay-href="">主页</a>
  16. <a><cite>组件</cite></a>
  17. <a><cite>上传组件</cite></a>
  18. <a><cite>功能演示二</cite></a>
  19. </div>
  20. </div>
  21. <div class="layui-fluid">
  22. <div class="layui-row layui-col-space15">
  23. <div class="layui-col-md12">
  24. <div class="layui-card">
  25. <div class="layui-card-header">选完文件后不自动上传</div>
  26. <div class="layui-card-body">
  27. <div class="layui-upload">
  28. <button type="button" class="layui-btn layui-btn-normal" id="test-upload-change">选择文件</button>
  29. <button type="button" class="layui-btn" id="test-upload-change-action">开始上传</button>
  30. </div>
  31. </div>
  32. </div>
  33. </div>
  34. <div class="layui-col-md12">
  35. <div class="layui-card">
  36. <div class="layui-card-header">拖拽上传</div>
  37. <div class="layui-card-body">
  38. <div class="layui-upload-drag" id="test-upload-drag">
  39. <i class="layui-icon"></i>
  40. <p>点击上传,或将文件拖拽到此处</p>
  41. </div>
  42. </div>
  43. </div>
  44. </div>
  45. <div class="layui-col-md12">
  46. <div class="layui-card">
  47. <div class="layui-card-header">高级应用:制作一个多文件列表</div>
  48. <div class="layui-card-body">
  49. <div class="layui-upload">
  50. <button type="button" class="layui-btn layui-btn-normal" id="test-upload-testList">选择多文件</button>
  51. <div class="layui-upload-list">
  52. <table class="layui-table">
  53. <thead>
  54. <tr><th>文件名</th>
  55. <th>大小</th>
  56. <th>状态</th>
  57. <th>操作</th>
  58. </tr></thead>
  59. <tbody id="test-upload-demoList"></tbody>
  60. </table>
  61. </div>
  62. <button type="button" class="layui-btn" id="test-upload-testListAction">开始上传</button>
  63. </div>
  64. </div>
  65. </div>
  66. </div>
  67. <div class="layui-col-md12">
  68. <div class="layui-card">
  69. <div class="layui-card-header">绑定原始文件域</div>
  70. <div class="layui-card-body">
  71. <input type="file" name="file" id="test-upload-primary">
  72. </div>
  73. </div>
  74. </div>
  75. </div>
  76. </div>
  77. <script src="../../../layuiadmin/layui/layui.js"></script>
  78. <script>
  79. layui.config({
  80. base: '../../../layuiadmin/' //静态资源所在路径
  81. }).extend({
  82. index: 'lib/index' //主入口模块
  83. }).use(['index', 'upload'], function(){
  84. var $ = layui.jquery
  85. ,upload = layui.upload;
  86. //选完文件后不自动上传
  87. upload.render({
  88. elem: '#test-upload-change'
  89. ,url: '/upload/'
  90. ,auto: false
  91. //,multiple: true
  92. ,bindAction: '#test-upload-change-action'
  93. ,done: function(res){
  94. console.log(res)
  95. }
  96. });
  97. //拖拽上传
  98. upload.render({
  99. elem: '#test-upload-drag'
  100. ,url: '/upload/'
  101. ,done: function(res){
  102. console.log(res)
  103. }
  104. });
  105. //多文件列表示例
  106. var demoListView = $('#test-upload-demoList')
  107. ,uploadListIns = upload.render({
  108. elem: '#test-upload-testList'
  109. ,url: '/upload/'
  110. ,accept: 'file'
  111. ,multiple: true
  112. ,auto: false
  113. ,bindAction: '#test-upload-testListAction'
  114. ,choose: function(obj){
  115. var files = this.files = obj.pushFile(); //将每次选择的文件追加到文件队列
  116. //读取本地文件
  117. obj.preview(function(index, file, result){
  118. var tr = $(['<tr id="upload-'+ index +'">'
  119. ,'<td>'+ file.name +'</td>'
  120. ,'<td>'+ (file.size/1014).toFixed(1) +'kb</td>'
  121. ,'<td>等待上传</td>'
  122. ,'<td>'
  123. ,'<button class="layui-btn layui-btn-mini test-upload-demo-reload layui-hide">重传</button>'
  124. ,'<button class="layui-btn layui-btn-mini layui-btn-danger test-upload-demo-delete">删除</button>'
  125. ,'</td>'
  126. ,'</tr>'].join(''));
  127. //单个重传
  128. tr.find('.test-upload-demo-reload').on('click', function(){
  129. obj.upload(index, file);
  130. });
  131. //删除
  132. tr.find('.test-upload-demo-delete').on('click', function(){
  133. delete files[index]; //删除对应的文件
  134. tr.remove();
  135. uploadListIns.config.elem.next()[0].value = ''; //清空 input file 值,以免删除后出现同名文件不可选
  136. });
  137. demoListView.append(tr);
  138. });
  139. }
  140. ,done: function(res, index, upload){
  141. if(res.code == 0){ //上传成功
  142. var tr = demoListView.find('tr#upload-'+ index)
  143. ,tds = tr.children();
  144. tds.eq(2).html('<span style="color: #5FB878;">上传成功</span>');
  145. tds.eq(3).html(''); //清空操作
  146. return delete this.files[index]; //删除文件队列已经上传成功的文件
  147. }
  148. this.error(index, upload);
  149. }
  150. ,error: function(index, upload){
  151. var tr = demoListView.find('tr#upload-'+ index)
  152. ,tds = tr.children();
  153. tds.eq(2).html('<span style="color: #FF5722;">上传失败</span>');
  154. tds.eq(3).find('.test-upload-demo-reload').removeClass('layui-hide'); //显示重传
  155. }
  156. });
  157. //绑定原始文件域
  158. upload.render({
  159. elem: '#test-upload-primary'
  160. ,url: '/upload/'
  161. ,done: function(res){
  162. console.log(res)
  163. }
  164. });
  165. });
  166. </script>
  167. </body>
  168. </html>