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 相关文章推荐
Javascript实例教程(19) 使用HoTMetal(5)
Dec 23 Javascript
js滚动条多种样式,推荐
Feb 05 Javascript
javascript动态改变img的src属性图片不显示的解决方法
Oct 20 Javascript
js创建数据共享接口——简化框架之间相互传值
Oct 23 Javascript
js判断undefined类型示例代码
Feb 10 Javascript
JS显示表格内指定行html代码的方法
Mar 31 Javascript
Javascript OOP之面向对象
Jul 31 Javascript
bootstrap flask登录页面编写实例
Nov 01 Javascript
Bootstarp基本模版学习教程
Feb 01 Javascript
深入理解javascript的getTime()方法
Feb 16 Javascript
利用express启动一个server服务的方法
Sep 17 Javascript
node使用promise替代回调函数
May 07 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
关于PHP语言构造器介绍
2013/07/08 PHP
微信支付开发订单查询实例
2016/07/12 PHP
jQuery Clone Bug解决代码
2010/12/22 Javascript
dedecms页面如何获取会员状态的实例代码
2016/03/15 Javascript
Javascript 跨域知识详细介绍
2016/10/30 Javascript
Bootstrap输入框组件使用详解
2017/06/09 Javascript
详解vue前后台数据交互vue-resource文档
2017/07/19 Javascript
jQuery实现的手动拖动控制进度条效果示例【测试可用】
2018/04/18 jQuery
JS实现数组的增删改查操作示例
2018/08/29 Javascript
理解Proxy及使用Proxy实现vue数据双向绑定操作
2020/07/18 Javascript
Python实现备份文件实例
2014/09/16 Python
用pickle存储Python的原生对象方法
2017/04/28 Python
Python Socket实现简单TCP Server/client功能示例
2017/08/05 Python
python的unittest测试类代码实例
2017/12/07 Python
Python实现的生产者、消费者问题完整实例
2018/05/30 Python
python Web开发你要理解的WSGI &amp; uwsgi详解
2018/08/01 Python
对python多线程中互斥锁Threading.Lock的简单应用详解
2019/01/11 Python
Django重置migrations文件的方法步骤
2019/05/01 Python
Python配置虚拟环境图文步骤
2019/05/20 Python
Python双链表原理与实现方法详解
2020/02/22 Python
Django日志及中间件模块应用案例
2020/09/10 Python
Python通过len函数返回对象长度
2020/10/22 Python
简单几步用纯CSS3实现3D翻转效果
2019/01/17 HTML / CSS
意大利体育用品网上商城:Nencini Sport
2016/08/18 全球购物
捷克汽车配件和工具销售网站:TorriaCars
2018/02/26 全球购物
GANT葡萄牙官方商店:拥有美国运动服传统的生活方式品牌
2018/10/18 全球购物
留学推荐信怎么写
2014/01/25 职场文书
运动会获奖感言
2014/02/11 职场文书
教师职位说明书
2014/07/29 职场文书
房屋过户委托书范本
2014/10/07 职场文书
高三毕业感言
2015/07/30 职场文书
工作后的感想
2015/08/07 职场文书
授权协议书范本(3篇)
2019/10/15 职场文书
Python的flask接收前台的ajax的post数据和get数据的方法
2021/04/12 Python
JavaScript选择器函数querySelector和querySelectorAll
2021/11/27 Javascript