plugs.file.html 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263
  1. {extend name='extra@admin/content'}
  2. {block name="content"}
  3. <div class="code">
  4. <blockquote class="site-text layui-elem-quote">
  5. 单图片上传
  6. <hr/>
  7. <p style='font-size:12px;line-height:26px'>
  8. 1. data-file 指定上传文件模式,可选择 ( one | mut ),one : 表示单文件上传, mut : 表示多文件上传。
  9. </p>
  10. <p style='font-size:12px;line-height:26px'>
  11. 2. data-type 指定上传文件后缀,多种后缀时使用英文逗号分割,如:jpg,png。
  12. </p>
  13. <p style='font-size:12px;line-height:26px'>
  14. 3. data-uptype 指定上传文件存储方式,可选择( local | qiniu | oss )。local : 文件存储在本地服务器, qiniu : 文件存储在七牛云, oss :
  15. 文件存储在阿里云OSS。
  16. </p>
  17. <p style='font-size:12px;line-height:26px'>
  18. 4. data-field 绑定上传成功后返回URL地址的 input,同时会触发 input 的 change 事件,可以监听并进行处理。
  19. </p>
  20. </blockquote>
  21. <div style="position:relative">
  22. <div class="uploadimage transition"><input type="hidden" name="file_1"/></div>
  23. <a data-file="one" data-field="file_1" data-type="png,jpg" data-uptype="local" href="javascript:void(0)"
  24. class="uploadbutton">上传图片</a>
  25. </div>
  26. <script>
  27. require(['jquery'], function () {
  28. $('[name="file_1"]').on('change', function () {
  29. $(this).parent().attr('data-tips-image', this.value).css('backgroundImage', 'url(' + this.value + ')');
  30. });
  31. });
  32. </script>
  33. <pre class="layui-code" lay-title="HTML代码">
  34. <div style="position:relative">
  35. <div class="uploadimage"><input type="hidden" name="file_1"/></div>
  36. <a data-file="one" data-field="file_1" data-type="png,jpg" data-uptype="local" href="javascript:void(0)"
  37. class="uploadbutton">上传图片</a>
  38. </div>
  39. </pre>
  40. <pre class="layui-code" lay-title="javascript代码">
  41. // 监听 input 的 onchange 事件
  42. // 当有文件上传时,会触发 change 事件
  43. require(['jquery'], function () {
  44. $('[name="file_1"]').on('change', function () {
  45. $(this).parent().attr('data-tips-image', this.value).css('backgroundImage', 'url(' + this.value + ')');
  46. });
  47. });
  48. </pre>
  49. </div>
  50. <div class="code">
  51. <blockquote class="site-text layui-elem-quote">
  52. 多图片上传
  53. <hr/>
  54. <p style='font-size:12px;line-height:26px'>
  55. 1. data-file 指定上传文件模式,可选择 ( one | mut ),one : 表示单文件上传, mut : 表示多文件上传。
  56. </p>
  57. <p style='font-size:12px;line-height:26px'>
  58. 2. data-type 指定上传文件后缀,多种后缀时使用英文逗号分割,如:jpg,png。
  59. </p>
  60. <p style='font-size:12px;line-height:26px'>
  61. 3. data-uptype 指定上传文件存储方式,可选择( local | qiniu | oss )。local : 文件存储在本地服务器, qiniu : 文件存储在七牛云, oss :
  62. 文件存储在阿里云OSS。
  63. </p>
  64. <p style='font-size:12px;line-height:26px'>
  65. 4. data-field 绑定上传成功后返回URL地址的 input,同时会触发 input 的 change 事件,可以监听并进行处理。
  66. </p>
  67. </blockquote>
  68. <div style="position:relative">
  69. <style>
  70. .upload-option-button {
  71. float: right;
  72. background: rgba(0, 0, 0, 0.5);
  73. color: #fff;
  74. width: 20px;
  75. height: 20px;
  76. line-height: 20px;
  77. text-align: center;
  78. display: none
  79. }
  80. .upload-option-button:hover {
  81. text-decoration: none;
  82. color: #fff
  83. }
  84. .uploadimagemtl:hover a {
  85. display: inline-block
  86. }
  87. </style>
  88. <input type='hidden' name='file_2'/>
  89. <p>
  90. <a data-file="mut" data-field="file_2" data-type="png,jpg" data-uptype="local" href="javascript:void(0)">上传图片</a>
  91. </p>
  92. </div>
  93. <script>
  94. require(['jquery'], function () {
  95. var tpl = '<div class="uploadimage transition uploadimagemtl"><a href="javascript:void(0)" class="layui-icon upload-option-button">&#x1006;</a></div>';
  96. $('[name="file_2"]').on('change', function () {
  97. var input = this, values = [], srcs = this.value.split('|');
  98. $(this).prevAll('.uploadimage').map(function () {
  99. values.push($(this).attr('data-tips-image'));
  100. }), $(this).prevAll('.uploadimage').remove();
  101. values.reverse();
  102. for (var i in srcs) {
  103. values.push(srcs[i]);
  104. }
  105. this.value = values.join('|');
  106. for (var i in values) {
  107. var $tpl = $(tpl).attr('data-tips-image', values[i]).css('backgroundImage', 'url(' + values[i] + ')');
  108. $tpl.data('input', input).data('srcs', values).data('index', i);
  109. $tpl.on('click', 'a', function (e) {
  110. e.stopPropagation();
  111. var $cur = $(this).parent();
  112. $.msg.confirm('确定要移除这张图片吗?', function () {
  113. var data = $cur.data('srcs');
  114. delete data[$cur.data('index')];
  115. $cur.data('input').value = data.join('|');
  116. $cur.remove();
  117. });
  118. });
  119. $(this).before($tpl);
  120. }
  121. });
  122. });
  123. </script>
  124. <pre class="layui-code" lay-title="HTML代码">
  125. <div style="position:relative">
  126. <style>
  127. .upload-option-button {
  128. float: right;
  129. background: rgba(0, 0, 0, 0.5);
  130. color: #fff;
  131. width: 20px;
  132. height: 20px;
  133. line-height: 20px;
  134. text-align: center;
  135. display: none
  136. }
  137. .upload-option-button:hover {
  138. text-decoration: none;
  139. color: #fff
  140. }
  141. .uploadimagemtl:hover a {
  142. display: inline-block
  143. }
  144. </style>
  145. <input type='hidden' name='file_2'/>
  146. <a data-file="mut" data-field="file_2" data-type="png,jpg" data-uptype="local" href="javascript:void(0)">上传图片</a>
  147. </div>
  148. </pre>
  149. <pre class="layui-code" lay-title="javascript代码">
  150. require(['jquery'], function () {
  151. var tpl = '<div class="uploadimage transition uploadimagemtl"><a href="javascript:void(0)"
  152. class="layui-icon upload-option-button">&#x1006;</a></div>';
  153. $('[name="file_2"]').on('change', function () {
  154. var input = this, values = [], srcs = this.value.split('|');
  155. $(this).prevAll('.uploadimage').map(function () {
  156. values.push($(this).attr('data-tips-image'));
  157. }), $(this).prevAll('.uploadimage').remove();
  158. values.reverse();
  159. for (var i in srcs) {
  160. values.push(srcs[i]);
  161. }
  162. this.value = values.join('|');
  163. for (var i in values) {
  164. var $tpl = $(tpl).attr('data-tips-image', values[i]).css('backgroundImage', 'url(' + values[i] + ')');
  165. $tpl.data('input', input).data('srcs', values).data('index', i);
  166. $tpl.on('click', 'a', function (e) {
  167. e.stopPropagation();
  168. var $cur = $(this).parent();
  169. $.msg.confirm('确定要移除这张图片吗?', function () {
  170. var data = $cur.data('srcs');
  171. delete data[$cur.data('index')];
  172. $cur.data('input').value = data.join('|');
  173. $cur.remove();
  174. });
  175. });
  176. $(this).before($tpl);
  177. }
  178. });
  179. });
  180. </pre>
  181. </div>
  182. <div class="code">
  183. <blockquote class="site-text layui-elem-quote">
  184. 单文件上传
  185. <hr/>
  186. <p style='font-size:12px;line-height:26px'>
  187. 1. data-file 指定上传文件模式,可选择 ( one | mut ),one : 表示单文件上传, mut : 表示多文件上传。
  188. </p>
  189. <p style='font-size:12px;line-height:26px'>
  190. 2. data-type 指定上传文件后缀,多种后缀时使用英文逗号分割,如:zip,rar。
  191. </p>
  192. <p style='font-size:12px;line-height:26px'>
  193. 3. data-uptype 指定上传文件存储方式,可选择( local | qiniu | oss )。local : 文件存储在本地服务器, qiniu : 文件存储在七牛云, oss :
  194. 文件存储在阿里云OSS。
  195. </p>
  196. <p style='font-size:12px;line-height:26px'>
  197. 4. data-field 绑定上传成功后返回URL地址的 input,同时会触发 input 的 change 事件,可以监听并进行处理。
  198. </p>
  199. </blockquote>
  200. <div style="position:relative;width:500px">
  201. <div class="input-group">
  202. <input type="text" class="form-control" name="file_3" placeholder="请选择ZIP文件...">
  203. <a class="input-group-addon" data-file="one" data-type="zip" data-uptype="local" data-field="file_3">
  204. <i class="fa fa-file"></i>
  205. </a>
  206. </div>
  207. </div>
  208. <script>
  209. require(['jquery'], function () {
  210. $('[name="file_3"]').on('change', function () {
  211. alert('文件上传后的地址:' + this.value);
  212. });
  213. });
  214. </script>
  215. <pre class="layui-code" lay-title="HTML代码">
  216. <div style="position:relative;width:500px">
  217. <div class="input-group">
  218. <input type="text" class="form-control" name="file_3" placeholder="请选择ZIP文件...">
  219. <a class="input-group-addon" data-file="one" data-type="zip" data-uptype="local" data-field="file_3">
  220. <i class="fa fa-file"></i>
  221. </a>
  222. </div>
  223. </div>
  224. </pre>
  225. <pre class="layui-code" lay-title="javascript代码">
  226. // 监听 input 的 onchange 事件
  227. // 当有文件上传时,会触发 change 事件
  228. require(['jquery'], function () {
  229. $('[name="file_3"]').on('change', function () {
  230. alert('文件上传后的地址:' + this.value);
  231. });
  232. });
  233. </pre>
  234. </div>
  235. <script>
  236. layui.use('code', function () {
  237. layui.code({encode: true});
  238. });
  239. </script>
  240. {/block}