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学习5 jQuery事件模型
Feb 07 Javascript
js判断样式className同时增加class或删除class
Jan 30 Javascript
IE6下拉框图层问题探讨及解决
Jan 03 Javascript
javascript格式化指定日期对象的方法
Apr 21 Javascript
快速使用Bootstrap搭建传送带
May 06 Javascript
jQuery简单入门示例之用户校验demo示例
Jul 09 Javascript
Ubuntu 16.04 64位中搭建Node.js开发环境教程
Oct 19 Javascript
html判断当前页面是否在iframe中的实例
Nov 30 Javascript
jquery.validate.js 多个相同name的处理方式
Jul 10 jQuery
用最简单的方法判断JavaScript中this的指向(推荐)
Sep 04 Javascript
javascript数组去重方法总结(推荐)
Mar 20 Javascript
Vue提供的三种调试方式你知道吗
Jan 18 Vue.js
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+javascript模拟Matrix画面
2006/10/09 PHP
Java和PHP在Web开发方面对比分析
2015/03/01 PHP
php使用redis的有序集合zset实现延迟队列应用示例
2020/02/20 PHP
最近项目写了一些js,水平有待提高
2009/01/31 Javascript
dwz 如何去掉ajaxloading具体代码
2013/05/22 Javascript
javascript预加载图片、css、js的方法示例介绍
2013/10/14 Javascript
jQuery源码分析之jQuery.fn.each与jQuery.each用法
2015/01/23 Javascript
JS实现的跨浏览器解析XML文件实例
2016/06/21 Javascript
Nodejs实现短信验证码功能
2017/02/09 NodeJs
ionic实现下拉刷新载入数据功能
2017/05/11 Javascript
Windows下Node.js安装及环境配置方法
2017/09/18 Javascript
详解利用Angular实现多团队模块化SPA开发框架
2017/11/27 Javascript
swiper移动端轮播插件(触碰图片之后停止轮播)
2017/12/28 Javascript
Node.js创建HTTP文件服务器的使用示例
2018/05/11 Javascript
JavaScript常用数学函数用法示例
2018/05/14 Javascript
jQuery实现表单动态添加数据并提交的方法
2018/07/19 jQuery
JS中的算法与数据结构之二叉查找树(Binary Sort Tree)实例详解
2019/08/16 Javascript
Vue.js watch监视属性知识点总结
2019/11/11 Javascript
基于Vue+ElementUI的省市区地址选择通用组件
2019/11/20 Javascript
JS面向对象之单选框实现
2020/01/17 Javascript
python中的reduce内建函数使用方法指南
2014/08/31 Python
在Django的URLconf中使用命名组的方法
2015/07/18 Python
Python通过调用mysql存储过程实现更新数据功能示例
2018/04/03 Python
Tensorflow实现卷积神经网络的详细代码
2018/05/24 Python
PyTorch中的Variable变量详解
2020/01/07 Python
python redis存入字典序列化存储教程
2020/07/16 Python
css3制作彩色边线3d立体按钮的示例(css3按钮)
2014/05/06 HTML / CSS
大学军训通讯稿
2014/01/13 职场文书
学校十一活动方案
2014/02/01 职场文书
策划创业计划书
2014/02/06 职场文书
大学生作弊检讨书
2014/02/19 职场文书
涉密人员保密承诺书
2014/05/28 职场文书
四风问题个人自查剖析材料思想汇报
2014/09/21 职场文书
成都人事代理协议书
2014/10/25 职场文书
入党宣誓仪式主持词
2015/06/29 职场文书
Nginx配置80端口访问8080及项目名地址方法解析
2021/03/31 Servers