index.ftl 9.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <title>图片预览图</title>
  5. <link rel="stylesheet" href="css/viewer.min.css">
  6. <link rel="stylesheet" href="css/loading.css">
  7. <link rel="stylesheet" href="http://cdn.static.runoob.com/libs/bootstrap/3.3.7/css/bootstrap.min.css">
  8. <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-table/1.11.1/bootstrap-table.css" />
  9. <style type="text/css">
  10. </style>
  11. </head>
  12. <body>
  13. <h1>文件预览项目接入和测试界面</h1>
  14. <div class="panel-group" id="accordion">
  15. <div class="panel panel-default">
  16. <div class="panel-heading">
  17. <h4 class="panel-title">
  18. <a data-toggle="collapse" data-parent="#accordion"
  19. href="#collapseOne">
  20. 接入说明
  21. </a>
  22. </h4>
  23. </div>
  24. <div id="collapseOne" class="panel-collapse collapse">
  25. <div class="panel-body">
  26. <div>
  27. 如果你的项目需要接入文件预览项目,达到对docx、excel、ppt、jpg等文件的预览效果,那么通过在你的项目中加入下面的代码就可以
  28. 成功实现:
  29. <pre style="background-color: #2f332a;color: #cccccc">
  30. var url = 'http://127.0.0.1:8080/file/test.txt'; //要预览文件的访问地址
  31. window.open('http://127.0.0.1:8012/onlinePreview?url='+encodeURIComponent(url));
  32. </pre>
  33. </div>
  34. <div>
  35. 新增多图片同时预览功能,接口如下:
  36. <pre style="background-color: #2f332a;color: #cccccc">
  37. var fileUrl =url1+"|"+"url2";//多文件使用“|”字符隔开
  38. window.open('http://127.0.0.1:8012/picturesPreview?urls='+encodeURIComponent(fileUrl));
  39. </pre>
  40. </div>
  41. </div>
  42. </div>
  43. </div>
  44. <div class="panel panel-default">
  45. <div class="panel-heading">
  46. <h4 class="panel-title">
  47. <a data-toggle="collapse" data-parent="#accordion"
  48. href="#collapseTwo">
  49. 预览测试
  50. </a>
  51. </h4>
  52. </div>
  53. <div id="collapseTwo" class="panel-collapse collapse">
  54. <div class="panel-body">
  55. <p style="color: red;">因为是测试所以一种文件只允许上传一个</p>
  56. <div style="padding: 10px">
  57. <form enctype="multipart/form-data" id="fileUpload">
  58. <input type="file" name="file" />
  59. <input type="button" id="btnsubmit" value=" 上 传 " />
  60. </form>
  61. </div>
  62. <div>
  63. <table id="table" data-pagination="true"></table>
  64. </div>
  65. </div>
  66. </div>
  67. </div>
  68. <div class="panel">
  69. <div class="panel-heading">
  70. <h4 class="panel-title">
  71. <a data-toggle="collapse" data-parent="#accordion"
  72. href="#collapseThree">
  73. 更新记录
  74. </a>
  75. </h4>
  76. </div>
  77. <div id="collapseThree" class="panel-collapse collapse in">
  78. <div class="panel-body">
  79. <div>
  80. 2019年06月18日 :<br>
  81. 1. 支持自动清理缓存及预览文件<br>
  82. 2. 支持http/https下载流url文件预览<br>
  83. 3. 支持FTP url文件预览<br>
  84. 4. 加入Docker构建<br><br>
  85. 2019年04月08日 :<br>
  86. 1. 缓存及队列实现抽象,提供JDK和REDIS两种实现(REDIS成为可选依赖)<br>
  87. 2. 打包方式提供zip和tar.gz包,并提供一键启动脚本<br><br>
  88. 2018年01月19日 :<br>
  89. 1. 大文件入队提前处理<br>
  90. 1. 新增addTask文件转换入队接口<br>
  91. 1. 采用redis队列,支持kkFIleView接口和异构系统入队两种方式<br><br>
  92. 2018年01月15日 :<br>
  93. 1.首页新增社会化评论框<br><br>
  94. 2018年01月12日 :<br>
  95. 1.新增多图片同时预览<br>
  96. 2.支持压缩包内图片轮番预览<br><br>
  97. 2018年01月02日 :<br>
  98. 1.修复txt等文本编码问题导致预览乱码<br>
  99. 2.修复项目模块依赖引入不到的问题<br>
  100. 3.新增spring boot profile,支持多环境配置<br>
  101. 4.引入pdf.js预览doc等文件,支持doc标题生成pdf预览菜单,支持手机端预览<br><br>
  102. 2017年12月12日:<br>
  103. 1.项目gitee开源:<a href="https://gitee.com/kekingcn/file-online-preview" target="_blank">https://gitee.com/kekingcn/file-online-preview</a><br>
  104. 2.项目github开源:<a href="https://github.com/kekingcn/kkFileView" target="_blank">https://github.com/kekingcn/kkFileView</a>
  105. </div>
  106. </div>
  107. </div>
  108. <div class="panel-body">
  109. <div style="width: 80%">
  110. <!-- 多说评论框 start -->
  111. <div id="SOHUCS" sid="kkfileView"></div>
  112. <script charset="utf-8" type="text/javascript" src="https://changyan.sohu.com/upload/changyan.js" ></script>
  113. <script type="text/javascript">
  114. window.changyan.api.config({
  115. appid: 'cytx6wU4N',
  116. conf: 'prod_c53858654f21b8f813c14b7681f5405a'
  117. });
  118. </script>
  119. <!-- 多说评论框 end -->
  120. </div>
  121. </div>
  122. </div>
  123. </div>
  124. <div class="loading_container">
  125. <div class="spinner">
  126. <div class="spinner-container container1">
  127. <div class="circle1"></div>
  128. <div class="circle2"></div>
  129. <div class="circle3"></div>
  130. <div class="circle4"></div>
  131. </div>
  132. <div class="spinner-container container2">
  133. <div class="circle1"></div>
  134. <div class="circle2"></div>
  135. <div class="circle3"></div>
  136. <div class="circle4"></div>
  137. </div>
  138. <div class="spinner-container container3">
  139. <div class="circle1"></div>
  140. <div class="circle2"></div>
  141. <div class="circle3"></div>
  142. <div class="circle4"></div>
  143. </div>
  144. </div>
  145. </div>
  146. <script src="js/jquery-3.0.0.min.js" type="text/javascript"></script>
  147. <script src="https://cdn.bootcss.com/jquery.form/3.09/jquery.form.min.js" type="text/javascript"></script>
  148. <script src="http://cdn.static.runoob.com/libs/bootstrap/3.3.7/js/bootstrap.min.js"></script>
  149. <script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-table/1.11.1/bootstrap-table.js"></script>
  150. <script>
  151. function deleteFile(fileName) {
  152. $.ajax({
  153. url: '${baseUrl}deleteFile?fileName=' + encodeURIComponent(fileName),
  154. success: function (data) {
  155. // 删除完成,刷新table
  156. if (1 == data.code) {
  157. alert(data.msg);
  158. }else{
  159. $('#table').bootstrapTable('refresh', {});
  160. }
  161. },
  162. error: function (data) {
  163. console.log(data);
  164. }
  165. })
  166. }
  167. $(function () {
  168. $('#table').bootstrapTable({
  169. url: 'listFiles',
  170. columns: [{
  171. field: 'fileName',
  172. title: '文件名'
  173. }, {
  174. field: 'action',
  175. title: '操作'
  176. },]
  177. }).on('pre-body.bs.table', function (e,data) {
  178. // 每个data添加一列用来操作
  179. $(data).each(function (index, item) {
  180. item.action = "<a class='btn btn-default' target='_blank' href='${baseUrl}onlinePreview?url="
  181. + encodeURIComponent('${baseUrl}' + item.fileName ) +"'>预览</a>" +
  182. "<a class='btn btn-default' target='_blank' href='javascript:void(0);' onclick='deleteFile(\""+item.fileName+"\")'>删除</a>";
  183. });
  184. return data;
  185. }).on('post-body.bs.table', function (e,data) {
  186. return data;
  187. });
  188. /**
  189. *
  190. */
  191. function showLoadingDiv() {
  192. var height = window.document.documentElement.clientHeight - 1;
  193. $(".loading_container").css("height", height).show();
  194. }
  195. $("#btnsubmit").click(function () {
  196. showLoadingDiv();
  197. $("#fileUpload").ajaxSubmit({
  198. success: function (data) {
  199. // 上传完成,刷新table
  200. if (1 == data.code) {
  201. alert(data.msg);
  202. }else{
  203. $('#table').bootstrapTable('refresh', {});
  204. }
  205. $(".loading_container").hide();
  206. },
  207. error: function (error) { alert(error); $(".loading_container").hide();},
  208. url: 'fileUpload', /*设置post提交到的页面*/
  209. type: "post", /*设置表单以post方法提交*/
  210. dataType: "json" /*设置返回值类型为文本*/
  211. });
  212. });
  213. });
  214. </script>
  215. </body>
  216. </html>