upload.html 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title>镜像站@文件/图片上传组件 - 在线演示 - Layui</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, maximum-scale=1">
  9. <meta name="apple-mobile-web-app-status-bar-style" content="black">
  10. <meta name="apple-mobile-web-app-capable" content="yes">
  11. <meta name="format-detection" content="telephone=no">
  12. <script>
  13. ;!function(){self!==parent&&(location.href="http://www.baidu.com/")}();
  14. </script>
  15. <link rel="stylesheet" href="/public/layui/dist/css/layui.css" tppabs="http://res.layui.com/layui/dist/css/layui.css?t=1632428048355" media="all">
  16. <link rel="stylesheet" href="/public/static/css/global.css" tppabs="http://res.layui.com/static/css/global.css?t=1632428048355-19" media="all">
  17. <style>
  18. .layui-upload-img{width: 92px; height: 92px;}
  19. </style>
  20. </head>
  21. <body>
  22. <div class="layui-layout layui-layout-admin">
  23. <div class="layui-header header header-demo" autumn>
  24. <div class="layui-fluid">
  25. <a class="logo" href="../index.html" tppabs="http://www.layui.com/">
  26. <img src="/public/static/images/layui/logo.png" tppabs="http://res.layui.com/static/images/layui/logo.png" alt="layui">
  27. </a>
  28. <div class="layui-form layui-hide-xs component" lay-filter="LAY-site-header-component"></div>
  29. <div class="layui-hide-xs site-notice"></div>
  30. <ul class="layui-nav" id="LAY_NAV_TOP">
  31. <li class="layui-nav-item ">
  32. <a href="../doc/index.html" tppabs="http://www.layui.com/doc/">文档</a>
  33. </li>
  34. <li class="layui-nav-item layui-this">
  35. <a href="index.html" tppabs="http://www.layui.com/demo/">示例</a>
  36. </li>
  37. <li class="layui-nav-item">
  38. <a href="javascript:;">
  39. <!--<span class="layui-badge-dot" style="left:0; right: auto; margin: -4px 0 0 5px;"></span>-->
  40. 周边
  41. </a>
  42. <dl class="layui-nav-child layui-nav-child-c">
  43. <dd class="layui-hide-sm layui-show-xs" lay-unselect>
  44. <a href="https://gitee.com/sentsin/layui/issues" target="_blank" rel="nofollow">问题反馈</a>
  45. <hr>
  46. </dd>
  47. <dd lay-unselect><a href="../alone.html" tppabs="http://www.layui.com/alone.html" target="_blank" lay-unselect>独立组件</a></dd>
  48. <dd lay-unselect><a href="../../fly.layui.com/extend/index.html" target="_blank">扩展组件</a></dd>
  49. </dl>
  50. </li>
  51. <li class="layui-nav-item layui-hide-xs">
  52. <a href="http://gitee.com/sentsin/layui/issues" target="_blank" rel="nofollow">反馈</a>
  53. </li>
  54. </ul>
  55. </div>
  56. </div>
  57. <!-- 让IE8/9支持媒体查询,从而兼容栅格 -->
  58. <!--[if lt IE 9]>
  59. <script src="../../other/html5shiv/r29/html5.min.js" tppabs="https://cdn.staticfile.org/html5shiv/r29/html5.min.js"></script>
  60. <script src="../../other/respond.js/1.4.2/respond.min.js" tppabs="https://cdn.staticfile.org/respond.js/1.4.2/respond.min.js"></script>
  61. <![endif]-->
  62. <div class="layui-side layui-bg-black">
  63. <div class="layui-side-scroll">
  64. <ul class="layui-nav layui-nav-tree site-demo-nav">
  65. <li class="layui-nav-item layui-nav-itemed">
  66. <a class="javascript:;" href="javascript:;">演示</a>
  67. <dl class="layui-nav-child">
  68. <dd>
  69. <a href="index.html" tppabs="http://www.layui.com/demo/">调试预览</a>
  70. </dd>
  71. </dl>
  72. </li>
  73. <li class="layui-nav-item layui-nav-itemed">
  74. <a class="javascript:;" href="javascript:;">布局</a>
  75. <dl class="layui-nav-child">
  76. <dd class="">
  77. <a href="grid.html" tppabs="http://www.layui.com/demo/grid.html">栅格</a>
  78. </dd>
  79. <dd class="">
  80. <a href="admin.html" tppabs="http://www.layui.com/demo/admin.html">框架</a>
  81. </dd>
  82. </dl>
  83. </li>
  84. <li class="layui-nav-item layui-nav-itemed">
  85. <a class="javascript:;" href="javascript:;">基本元素</a>
  86. <dl class="layui-nav-child">
  87. <dd class="">
  88. <a href="button.html" tppabs="http://www.layui.com/demo/button.html">按钮</a>
  89. </dd>
  90. <dd class="">
  91. <a href="form.html" tppabs="http://www.layui.com/demo/form.html">表单</a>
  92. </dd>
  93. <dd class="">
  94. <a href="nav.html" tppabs="http://www.layui.com/demo/nav.html">导航 / 面包屑</a>
  95. </dd>
  96. <dd class="">
  97. <a href="menu.html" tppabs="http://www.layui.com/demo/menu.html">基础菜单</a>
  98. </dd>
  99. <dd class="">
  100. <a href="tab.html" tppabs="http://www.layui.com/demo/tab.html">选项卡</a>
  101. </dd>
  102. <dd class="">
  103. <a href="progress.html" tppabs="http://www.layui.com/demo/progress.html">进度条</a>
  104. </dd>
  105. <dd class="">
  106. <a href="panel.html" tppabs="http://www.layui.com/demo/panel.html">面板</a>
  107. </dd>
  108. <dd class="">
  109. <a href="badge.html" tppabs="http://www.layui.com/demo/badge.html">徽章</a>
  110. </dd>
  111. <dd class="">
  112. <a href="timeline.html" tppabs="http://www.layui.com/demo/timeline.html">时间线</a>
  113. </dd>
  114. <dd class="">
  115. <a href="table-element.html" tppabs="http://www.layui.com/demo/table-element.html">静态表格</a>
  116. </dd>
  117. <dd class="">
  118. <a href="anim.html" tppabs="http://www.layui.com/demo/anim.html">动画</a>
  119. </dd>
  120. <dd class="">
  121. <a href="auxiliar.html" tppabs="http://www.layui.com/demo/auxiliar.html">辅助元素</a>
  122. </dd>
  123. </dl>
  124. </li>
  125. <li class="layui-nav-item layui-nav-itemed">
  126. <a class="javascript:;" href="javascript:;">组件示例</a>
  127. <dl class="layui-nav-child">
  128. <dd class="">
  129. <a href="layer.html" tppabs="http://www.layui.com/demo/layer.html">
  130. 弹出层
  131. </a>
  132. </dd>
  133. <dd class="">
  134. <a href="laydate.html" tppabs="http://www.layui.com/demo/laydate.html">
  135. 日期与时间选择
  136. </a>
  137. </dd>
  138. <dd class="">
  139. <a href="table.html" tppabs="http://www.layui.com/demo/table.html">
  140. 数据表格
  141. </a>
  142. </dd>
  143. <dd class="">
  144. <a href="laypage.html" tppabs="http://www.layui.com/demo/laypage.html">
  145. 分页
  146. </a>
  147. </dd>
  148. <dd class="">
  149. <a href="dropdown.html" tppabs="http://www.layui.com/demo/dropdown.html">
  150. 下拉菜单
  151. </a>
  152. </dd>
  153. <dd class="layui-this">
  154. <a href="upload.html" tppabs="http://www.layui.com/demo/upload.html">
  155. 文件上传
  156. </a>
  157. </dd>
  158. <dd class="">
  159. <a href="transfer.html" tppabs="http://www.layui.com/demo/transfer.html">
  160. 穿梭框
  161. </a>
  162. </dd>
  163. <dd class="">
  164. <a href="tree.html" tppabs="http://www.layui.com/demo/tree.html">
  165. 树形组件
  166. </a>
  167. </dd>
  168. <dd class="">
  169. <a href="colorpicker.html" tppabs="http://www.layui.com/demo/colorpicker.html">
  170. 颜色选择器
  171. </a>
  172. </dd>
  173. <dd class="">
  174. <a href="slider.html" tppabs="http://www.layui.com/demo/slider.html">
  175. 滑块
  176. </a>
  177. </dd>
  178. <dd class="">
  179. <a href="rate.html" tppabs="http://www.layui.com/demo/rate.html">
  180. 评分
  181. </a>
  182. </dd>
  183. <dd class="">
  184. <a href="carousel.html" tppabs="http://www.layui.com/demo/carousel.html">
  185. 轮播
  186. </a>
  187. </dd>
  188. <dd class="">
  189. <a href="laytpl.html" tppabs="http://www.layui.com/demo/laytpl.html">
  190. 模板引擎
  191. </a>
  192. </dd>
  193. <dd class="">
  194. <a href="layedit.html" tppabs="http://www.layui.com/demo/layedit.html">
  195. 富文本编辑器
  196. </a>
  197. </dd>
  198. <dd class="">
  199. <a href="flow.html" tppabs="http://www.layui.com/demo/flow.html">
  200. 流加载
  201. </a>
  202. </dd>
  203. <dd class="">
  204. <a href="util.html" tppabs="http://www.layui.com/demo/util.html">
  205. 工具模块
  206. </a>
  207. </dd>
  208. <dd class="">
  209. <a href="code.html" tppabs="http://www.layui.com/demo/code.html">
  210. 文本行修饰
  211. </a>
  212. </dd>
  213. </dl>
  214. </li>
  215. <li class="layui-nav-item" style="height: 30px; text-align: center"></li>
  216. </ul>
  217. </div>
  218. </div>
  219. <div class="layui-tab layui-tab-brief" lay-filter="demoTitle">
  220. <ul class="layui-tab-title site-demo-title">
  221. <li class="layui-this">预览</li>
  222. <li>查看代码</li>
  223. <li>帮助</li>
  224. </ul>
  225. <div class="layui-body layui-tab-content site-demo site-demo-body">
  226. <div class="layui-tab-item layui-show">
  227. <div class="layui-main">
  228. <div id="LAY_preview">
  229. <blockquote class="layui-elem-quote layui-text">
  230. 提示:以下示例的部分上传接口由第三方网站 <em>http://httpbin.org</em> 提供,它可以模拟各类 HTTP 请求。
  231. <br>其他示例未配置上传接口,所以每次上传都会报「请求上传接口出现异常」的提示,这属于正常现象。
  232. </blockquote>
  233. <fieldset class="layui-elem-field layui-field-title" style="margin-top: 30px;">
  234. <legend>常规使用:普通图片上传</legend>
  235. </fieldset>
  236. <div class="layui-upload">
  237. <button type="button" class="layui-btn" id="test1">上传图片</button>
  238. <div class="layui-upload-list">
  239. <img class="layui-upload-img" id="demo1">
  240. <p id="demoText"></p>
  241. </div>
  242. <div style="width: 95px;">
  243. <div class="layui-progress layui-progress-big" lay-showPercent="yes" lay-filter="demo">
  244. <div class="layui-progress-bar" lay-percent=""></div>
  245. </div>
  246. </div>
  247. </div>
  248. <a name="list-progress"> </a>
  249. <div style="margin-top: 10px;">
  250. <!-- 示例-970 -->
  251. </div>
  252. <fieldset class="layui-elem-field layui-field-title" style="margin-top: 30px;">
  253. <legend>高级应用:制作一个多文件列表</legend>
  254. </fieldset>
  255. <div class="layui-upload">
  256. <button type="button" class="layui-btn layui-btn-normal" id="testList">选择多文件</button>
  257. <div class="layui-upload-list" style="max-width: 1000px;">
  258. <table class="layui-table">
  259. <colgroup>
  260. <col>
  261. <col width="150">
  262. <col width="260">
  263. <col width="150">
  264. </colgroup>
  265. <thead>
  266. <th>文件名</th>
  267. <th>大小</th>
  268. <th>上传进度</th>
  269. <th>操作</th>
  270. </thead>
  271. <tbody id="demoList"></tbody>
  272. </table>
  273. </div>
  274. <button type="button" class="layui-btn" id="testListAction">开始上传</button>
  275. </div>
  276. <fieldset class="layui-elem-field layui-field-title" style="margin-top: 50px;">
  277. <legend>上传多张图片</legend>
  278. </fieldset>
  279. <div class="layui-upload">
  280. <button type="button" class="layui-btn" id="test2">多图片上传</button>
  281. <blockquote class="layui-elem-quote layui-quote-nm" style="margin-top: 10px;">
  282. 预览图:
  283. <div class="layui-upload-list" id="demo2"></div>
  284. </blockquote>
  285. </div>
  286. <fieldset class="layui-elem-field layui-field-title" style="margin-top: 30px;">
  287. <legend>指定允许上传的文件类型</legend>
  288. </fieldset>
  289. <div class="layui-btn-container">
  290. <button type="button" class="layui-btn" id="test3"><i class="layui-icon">&#xe67c;</i>上传文件</button>
  291. <button type="button" class="layui-btn layui-btn-primary" id="test4"><i class="layui-icon">&#xe67c;</i>只允许压缩文件</button>
  292. <button type="button" class="layui-btn" id="test5"><i class="layui-icon">&#xe67c;</i>上传视频</button>
  293. <button type="button" class="layui-btn" id="test6"><i class="layui-icon">&#xe67c;</i>上传音频</button>
  294. </div>
  295. <fieldset class="layui-elem-field layui-field-title" style="margin-top: 30px;">
  296. <legend>设定文件大小限制</legend>
  297. </fieldset>
  298. <button type="button" class="layui-btn layui-btn-danger" id="test7"><i class="layui-icon">&#xe67c;</i>上传图片</button>
  299. <div class="layui-inline layui-word-aux">
  300. 这里以限制 60KB 为例
  301. </div>
  302. <fieldset class="layui-elem-field layui-field-title" style="margin-top: 30px;">
  303. <legend>同时绑定多个元素,并将属性设定在元素上</legend>
  304. </fieldset>
  305. <div class="layui-btn-container">
  306. <button class="layui-btn demoMore" lay-data="{url: '/a/'}">上传A</button>
  307. <button class="layui-btn demoMore" lay-data="{url: '/b/', size:5}">上传B</button>
  308. <button class="layui-btn demoMore" lay-data="{url: '/c/', accept: 'file',size:10}">上传C</button>
  309. </div>
  310. <fieldset class="layui-elem-field layui-field-title" style="margin-top: 30px;">
  311. <legend>选完文件后不自动上传</legend>
  312. </fieldset>
  313. <div class="layui-btn-container">
  314. <button type="button" class="layui-btn layui-btn-normal" id="test8">选择文件</button>
  315. <button type="button" class="layui-btn" id="test9">开始上传</button>
  316. </div>
  317. <fieldset class="layui-elem-field layui-field-title" style="margin-top: 30px;">
  318. <legend>拖拽上传</legend>
  319. </fieldset>
  320. <div class="layui-upload-drag" id="test10">
  321. <i class="layui-icon">&#xe67c;</i>
  322. <p>点击上传,或将文件拖拽到此处</p>
  323. <div class="layui-hide" id="uploadDemoView">
  324. <hr>
  325. <img src="" alt="上传成功后渲染" style="max-width: 196px">
  326. </div>
  327. </div>
  328. <fieldset class="layui-elem-field layui-field-title" style="margin-top: 30px;">
  329. <legend>绑定原始文件域</legend>
  330. </fieldset>
  331. <input type="file" name="file" id="test20">
  332. </div>
  333. <blockquote class="layui-elem-quote" style="margin-top: 30px;">
  334. 更多我们未能呈现的示例,还有待您在阅读文档、以及不断使用的过程,去深入挖掘。
  335. </blockquote>
  336. <div style="margin: 15px 0 100px; padding-bottom: 100px;">
  337. </div>
  338. </div>
  339. </div>
  340. <div class="layui-tab-item">
  341. <textarea class="layui-border-box site-demo-text site-demo-code" id="LAY_democode" spellcheck="false" readonly>
  342. <!DOCTYPE html>
  343. <html>
  344. <head>
  345. <meta charset="utf-8">
  346. <title>镜像站@Layui</title>
  347. <meta name="renderer" content="webkit">
  348. <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  349. <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
  350. <link rel="stylesheet" href="/public/layui/dist/css/layui.css" tppabs="http://res.layui.com/layui/dist/css/layui.css" media="all">
  351. <!-- 注意:如果你直接复制所有代码到本地,上述css路径需要改成你本地的 -->
  352. </head>
  353. </textarea>
  354. </div>
  355. <div class="layui-tab-item">
  356. <div class="layui-main">
  357. <p>目前暂不支持批量上传(即同时上传多个),但支持添加多个文件(即一个一个上传)</p>
  358. <fieldset class="layui-elem-field layui-field-title" style="margin-top: 50px;">
  359. <legend>相关</legend>
  360. </fieldset>
  361. <a class="layui-btn layui-btn-normal" href="../doc/modules/upload.html" tppabs="http://www.layui.com/doc/modules/upload.html" target="_blank">文件上传文档</a>
  362. </div>
  363. </div>
  364. </div>
  365. </div>
  366. <div class="layui-footer footer footer-demo">
  367. <p>
  368. Copyright &copy; 2021 <a href="../index.html" tppabs="http://www.layui.com/">「本站仅为 layui 文档保留的镜像站点,与官方无关」</a> MIT Licensed</p>
  369. <p>
  370. <a href="../about/disclaimer.html" tppabs="http://www.layui.com/about/disclaimer.html" target="_blank">免责声明</a>
  371. <a href="../about/relatedlinks.html" tppabs="http://www.layui.com/about/relatedlinks.html" target="_blank">友链</a>
  372. <a href="javascript:;" site-event="weixinmp">公众号</a>
  373. </p>
  374. <div class="site-union">
  375. <p class="site-union-desc">
  376. <span>
  377. </span>
  378. </p>
  379. </div>
  380. </div>
  381. <script>
  382. window.global = {
  383. pageType: 'demo'
  384. ,preview: function(){
  385. var preview = document.getElementById('LAY_preview');
  386. return preview ? preview.innerHTML : '';
  387. }()
  388. };
  389. </script>
  390. <div class="site-tree-mobile layui-hide">
  391. <i class="layui-icon layui-icon-spread-left"></i>
  392. </div>
  393. <div class="site-mobile-shade"></div>
  394. <script src="/public/layui/dist/layui.js" tppabs="http://res.layui.com/layui/dist/layui.js?t=1632428048355" charset="utf-8"></script>
  395. <script>
  396. layui.config({
  397. base: '/public/static/lay/modules/layui/'
  398. ,version: '1632428048355'
  399. }).use('global');
  400. </script>
  401. </div>
  402. <div id="LAY_democodejs">
  403. <script>
  404. layui.use(['upload', 'element', 'layer'], function(){
  405. var $ = layui.jquery
  406. ,upload = layui.upload
  407. ,element = layui.element
  408. ,layer = layui.layer;
  409. //常规使用 - 普通图片上传
  410. var uploadInst = upload.render({
  411. elem: '#test1'
  412. ,url: 'https://httpbin.org/post' //此处用的是第三方的 http 请求演示,实际使用时改成您自己的上传接口即可。
  413. ,before: function(obj){
  414. //预读本地文件示例,不支持ie8
  415. obj.preview(function(index, file, result){
  416. $('#demo1').attr('src', result); //图片链接(base64)
  417. });
  418. element.progress('demo', '0%'); //进度条复位
  419. layer.msg('上传中', {icon: 16, time: 0});
  420. }
  421. ,done: function(res){
  422. //如果上传失败
  423. if(res.code > 0){
  424. return layer.msg('上传失败');
  425. }
  426. //上传成功的一些操作
  427. //……
  428. $('#demoText').html(''); //置空上传失败的状态
  429. }
  430. ,error: function(){
  431. //演示失败状态,并实现重传
  432. var demoText = $('#demoText');
  433. demoText.html('<span style="color: #FF5722;">上传失败</span> <a class="layui-btn layui-btn-xs demo-reload">重试</a>');
  434. demoText.find('.demo-reload').on('click', function(){
  435. uploadInst.upload();
  436. });
  437. }
  438. //进度条
  439. ,progress: function(n, elem, e){
  440. element.progress('demo', n + '%'); //可配合 layui 进度条元素使用
  441. if(n == 100){
  442. layer.msg('上传完毕', {icon: 1});
  443. }
  444. }
  445. });
  446. //演示多文件列表
  447. var uploadListIns = upload.render({
  448. elem: '#testList'
  449. ,elemList: $('#demoList') //列表元素对象
  450. ,url: 'https://httpbin.org/post' //此处用的是第三方的 http 请求演示,实际使用时改成您自己的上传接口即可。
  451. ,accept: 'file'
  452. ,multiple: true
  453. ,number: 3
  454. ,auto: false
  455. ,bindAction: '#testListAction'
  456. ,choose: function(obj){
  457. var that = this;
  458. var files = this.files = obj.pushFile(); //将每次选择的文件追加到文件队列
  459. //读取本地文件
  460. obj.preview(function(index, file, result){
  461. var tr = $(['<tr id="upload-'+ index +'">'
  462. ,'<td>'+ file.name +'</td>'
  463. ,'<td>'+ (file.size/1014).toFixed(1) +'kb</td>'
  464. ,'<td><div class="layui-progress" lay-filter="progress-demo-'+ index +'"><div class="layui-progress-bar" lay-percent=""></div></div></td>'
  465. ,'<td>'
  466. ,'<button class="layui-btn layui-btn-xs demo-reload layui-hide">重传</button>'
  467. ,'<button class="layui-btn layui-btn-xs layui-btn-danger demo-delete">删除</button>'
  468. ,'</td>'
  469. ,'</tr>'].join(''));
  470. //单个重传
  471. tr.find('.demo-reload').on('click', function(){
  472. obj.upload(index, file);
  473. });
  474. //删除
  475. tr.find('.demo-delete').on('click', function(){
  476. delete files[index]; //删除对应的文件
  477. tr.remove();
  478. uploadListIns.config.elem.next()[0].value = ''; //清空 input file 值,以免删除后出现同名文件不可选
  479. });
  480. that.elemList.append(tr);
  481. element.render('progress'); //渲染新加的进度条组件
  482. });
  483. }
  484. ,done: function(res, index, upload){ //成功的回调
  485. var that = this;
  486. //if(res.code == 0){ //上传成功
  487. var tr = that.elemList.find('tr#upload-'+ index)
  488. ,tds = tr.children();
  489. tds.eq(3).html(''); //清空操作
  490. delete this.files[index]; //删除文件队列已经上传成功的文件
  491. return;
  492. //}
  493. this.error(index, upload);
  494. }
  495. ,allDone: function(obj){ //多文件上传完毕后的状态回调
  496. console.log(obj)
  497. }
  498. ,error: function(index, upload){ //错误回调
  499. var that = this;
  500. var tr = that.elemList.find('tr#upload-'+ index)
  501. ,tds = tr.children();
  502. tds.eq(3).find('.demo-reload').removeClass('layui-hide'); //显示重传
  503. }
  504. ,progress: function(n, elem, e, index){ //注意:index 参数为 layui 2.6.6 新增
  505. element.progress('progress-demo-'+ index, n + '%'); //执行进度条。n 即为返回的进度百分比
  506. }
  507. });
  508. //多图片上传
  509. upload.render({
  510. elem: '#test2'
  511. ,url: '' //此处配置你自己的上传接口即可
  512. ,multiple: true
  513. ,before: function(obj){
  514. //预读本地文件示例,不支持ie8
  515. obj.preview(function(index, file, result){
  516. $('#demo2').append('<img src="'+ result +'" alt="'+ file.name +'" class="layui-upload-img">')
  517. });
  518. }
  519. ,done: function(res){
  520. //上传完毕
  521. }
  522. });
  523. //指定允许上传的文件类型
  524. upload.render({
  525. elem: '#test3'
  526. ,url: '' //此处配置你自己的上传接口即可
  527. ,accept: 'file' //普通文件
  528. ,done: function(res){
  529. layer.msg('上传成功');
  530. console.log(res);
  531. }
  532. });
  533. upload.render({ //允许上传的文件后缀
  534. elem: '#test4'
  535. ,url: '' //此处配置你自己的上传接口即可
  536. ,accept: 'file' //普通文件
  537. ,exts: 'zip|rar|7z' //只允许上传压缩文件
  538. ,done: function(res){
  539. layer.msg('上传成功');
  540. console.log(res)
  541. }
  542. });
  543. upload.render({
  544. elem: '#test5'
  545. ,url: '' //此处配置你自己的上传接口即可
  546. ,accept: 'video' //视频
  547. ,done: function(res){
  548. layer.msg('上传成功');
  549. console.log(res)
  550. }
  551. });
  552. upload.render({
  553. elem: '#test6'
  554. ,url: '' //此处配置你自己的上传接口即可
  555. ,accept: 'audio' //音频
  556. ,done: function(res){
  557. layer.msg('上传成功');
  558. console.log(res)
  559. }
  560. });
  561. //设定文件大小限制
  562. upload.render({
  563. elem: '#test7'
  564. ,url: '' //此处配置你自己的上传接口即可
  565. ,size: 60 //限制文件大小,单位 KB
  566. ,done: function(res){
  567. layer.msg('上传成功');
  568. console.log(res)
  569. }
  570. });
  571. //同时绑定多个元素,并将属性设定在元素上
  572. upload.render({
  573. elem: '.demoMore'
  574. ,before: function(){
  575. layer.tips('接口地址:'+ this.url, this.item, {tips: 1});
  576. }
  577. ,done: function(res, index, upload){
  578. var item = this.item;
  579. console.log(item); //获取当前触发上传的元素,layui 2.1.0 新增
  580. }
  581. })
  582. //选完文件后不自动上传
  583. upload.render({
  584. elem: '#test8'
  585. ,url: '' //此处配置你自己的上传接口即可
  586. ,auto: false
  587. //,multiple: true
  588. ,bindAction: '#test9'
  589. ,done: function(res){
  590. layer.msg('上传成功');
  591. console.log(res)
  592. }
  593. });
  594. //拖拽上传
  595. upload.render({
  596. elem: '#test10'
  597. ,url: 'https://httpbin.org/post' //此处用的是第三方的 http 请求演示,实际使用时改成您自己的上传接口即可。
  598. ,done: function(res){
  599. layer.msg('上传成功');
  600. layui.$('#uploadDemoView').removeClass('layui-hide').find('img').attr('src', res.files.file);
  601. console.log(res)
  602. }
  603. });
  604. //绑定原始文件域
  605. upload.render({
  606. elem: '#test20'
  607. ,url: '' //此处配置你自己的上传接口即可
  608. ,done: function(res){
  609. layer.msg('上传成功');
  610. console.log(res)
  611. }
  612. });
  613. });
  614. </script>
  615. </div>
  616. </body>
  617. </html>