JavaScript中附件预览功能实现详解(推荐)


Posted in Javascript onAugust 15, 2017

由于公司的EMP影像平台比较繁琐,还需要下载才能够能够进行图片的预览,于是业务人员提出在附件列表页面增加预览页面。今天将完成的过程记录下来:

一种是js版本的,另一种是jquery版本, 在这里使用的是js版本的。jquery版本只是引入方式略有不同。

1.引入插件(已上传)

<SCRIPT src="styles/ccc/jquery.min.js"></SCRIPT>
 
<SCRIPT src="styles/ccc/viewer-jquery.min.js"></SCRIPT>

2.将预览页面写活

<SCRIPT>
var attach_path= '${param.attach_path}';
var attach_name= decodeURI('${param.attach_name}');
var attachPath= new Array();
attachName=attach_name.split(",");
var attachPath1= new Array();
attachPath1=attach_path.split(",");
for (var i=0;i<attachPath1.length;i++)
{ 
 attachPath2='102storage'+attachPath1[i];
 $("#jq22").append("<li><img alt='"+attachName[i]+"' src='"+attachPath2+"'></li>"); 
}
$(function() {
 $('#jq22').viewer({
  url: 'data-original',
 });
});
</SCRIPT>

将图片的路径从之前的列表页面传到预览页面,进行图片预览时既可以多选又可以不选,如果不选则默认展示本列表所有的图片,勾选的话则展示勾选的之后的图片,在这里发现APP上传了许多的图片的压缩包,所以在后台增加了自动解压的*.zip,*.rar的功能,这部分需要引入第三方jar包,1.6的仅支持*.zip格式的解压,并且最坑的sun公司默认编码,如果有中文就会报错,到jdk1.7才支持中文

import java.io.*; 
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.List;
import org.apache.tools.zip.ZipEntry;
import org.apache.tools.zip.ZipFile;
import com.yucheng.cmis.operation.CMISOperation;
import com.github.junrar.Archive;
import com.github.junrar.rarfile.FileHeader;

3.异步删除解压文件

考虑到解压之后的会占用共享磁盘的空间,所以在解压之后做异步删除,时间在20s之后,时间足够,不过20s之后如果点击重新加载页面的话会图片加载失败,因为图片的路径已经失效了。

//异步删除文件(节省空间)
   List<Thread> threadList = new ArrayList<Thread>();
   Thread thread = new Thread(new DeleteTemporaryFolder(dstDirectoryPath));
   thread.start();
   for(Thread t : threadList){
    try {
     t.join();
    } catch (InterruptedException e) {
     e.printStackTrace();
    }
   }

4.磁盘挂载

在显示图片的时候,页面是访问不了工程以为的图片路径,所以需要执行挂载命令将共享磁盘的路径挂载在工程下的某个路径

mount --bind /testshare01 /app/cmis/project/cmis.war/ff/testshare01

这样就可以正常展示了

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助~如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持!

Javascript 相关文章推荐
JQuery index()方法使用代码
Jun 02 Javascript
Firefox中通过JavaScript复制数据到剪贴板(Copy to Clipboard 跨浏览器版)
Nov 22 Javascript
吐槽一下我所了解的Node.js
Oct 08 Javascript
jquery+php实现搜索框自动提示
Nov 28 Javascript
JQuery实现鼠标移动图片显示描述层的方法
Jun 25 Javascript
AngularJS 中使用Swiper制作滚动图不能滑动的解决方法
Nov 15 Javascript
React中ES5与ES6写法的区别总结
Apr 21 Javascript
基于BootStrap实现简洁注册界面
Jul 20 Javascript
js链表操作(实例讲解)
Aug 29 Javascript
JS中封装axios来管控api的2种方式
Sep 11 Javascript
vue flex 布局实现div均分自动换行的示例代码
Aug 05 Javascript
javascript之Object.assign()的痛点分析
Mar 03 Javascript
input输入框内容实时监测(附代码)
Aug 15 #Javascript
vue的基本用法与常见指令
Aug 15 #Javascript
vue如何集成raphael.js中国地图的方法示例
Aug 15 #Javascript
JavaScript与Java正则表达式写法的区别介绍
Aug 15 #Javascript
js基于FileSaver.js 浏览器导出Excel文件的示例
Aug 15 #Javascript
form表单序列化详解(推荐)
Aug 15 #Javascript
JavaScript上传文件时不用刷新页面方法总结(推荐)
Aug 15 #Javascript
You might like
深入理解ob_flush和flush的区别(ob_flush()与flush()使用方法)
2013/02/06 PHP
Zend Framework框架路由机制代码分析
2016/03/22 PHP
Yii2 hasOne(), hasMany() 实现三表关联的方法(两种)
2017/02/15 PHP
Thinkphp5框架实现图片、音频和视频文件的上传功能详解
2019/08/27 PHP
一些Javascript的IE和Firefox(火狐)兼容性的问题总结及常用例子
2009/05/21 Javascript
javascript 解析后的xml对象的读取方法细解
2009/07/25 Javascript
jquery实现的让超出显示范围外的导航自动固定屏幕最顶上
2011/09/22 Javascript
JSON 数字排序多字段排序介绍
2013/09/18 Javascript
jquery实现个人中心导航菜单效果和美观都非常不错
2014/09/02 Javascript
JavaScript使用Max函数返回两个数字中较大数的方法
2015/04/06 Javascript
JavaScript获取当前日期是星期几的方法
2015/04/06 Javascript
使用微信内嵌H5网页解决JS倒计时失效问题
2017/01/13 Javascript
bootstrap的常用组件和栅格式布局详解
2017/05/02 Javascript
基于jquery实现多选下拉列表
2017/08/02 jQuery
vue-router的HTML5 History 模式设置
2018/09/08 Javascript
vue实现百度下拉列表交互操作示例
2019/03/12 Javascript
VUE解决 v-html不能触发点击事件的问题
2019/10/28 Javascript
jQuery鼠标滑过横向时间轴样式(代码详解)
2019/11/01 jQuery
你可能从未使用过的11+个JavaScript特性(小结)
2020/01/08 Javascript
vscode+gulp轻松开发小程序的完整步骤
2020/10/18 Javascript
[32:56]完美世界DOTA2联赛PWL S3 Rebirth vs CPG 第二场 12.11
2020/12/16 DOTA
把大数据数字口语化(python与js)两种实现
2013/02/21 Python
详解python多线程之间的同步(一)
2019/04/03 Python
Python3内置模块pprint让打印比print更美观详解
2019/06/02 Python
深入了解Python iter() 方法的用法
2019/07/11 Python
python实现图片中文字分割效果
2019/07/22 Python
Pycharm激活码激活两种快速方式(附最新激活码和插件)
2020/03/12 Python
浅谈CSS3 box-sizing 属性 有趣的盒模型
2019/04/02 HTML / CSS
css3中flex布局宽度不生效的解决
2020/12/09 HTML / CSS
canvas实现按住鼠标移动绘制出轨迹的示例代码
2018/02/05 HTML / CSS
七一表彰活动方案
2014/01/18 职场文书
旺仔牛奶广告词
2014/03/20 职场文书
文明倡议书范文
2014/04/15 职场文书
大学生就业自我推荐信
2014/05/10 职场文书
2016年大学校运会广播稿件
2015/12/21 职场文书
Python一些基本的图像操作和处理总结
2021/06/23 Python