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异步请求数据实例代码
Dec 28 Javascript
如何在父窗口中得知window.open()出的子窗口关闭事件
Oct 15 Javascript
JavaScript中的原型prototype属性使用详解
Jun 05 Javascript
JS验证逗号隔开可以是中文字母数字
Apr 22 Javascript
Bootstrap3学习笔记(二)之排版
May 20 Javascript
Vue.js组件tabs实现选项卡切换效果
Dec 01 Javascript
Vue.js实现多条件筛选、搜索、排序及分页的表格功能
Nov 24 Javascript
angularJS之$http:与服务器交互示例
Mar 17 Javascript
如何用webpack4带你实现一个vue的打包的项目
Jun 20 Javascript
AngularJS自定义表单验证功能实例详解
Aug 24 Javascript
总结javascript三元运算符知识点
Sep 28 Javascript
jQuery实现的导航条点击后高亮显示功能示例
Mar 04 jQuery
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中GET变量的使用
2006/10/09 PHP
PHP redis实现超迷你全文检索
2017/03/04 PHP
JavaScript学习笔记(十)
2010/01/17 Javascript
from 表单提交返回值用post或者是get方法实现
2013/08/21 Javascript
基于Jquery easyui 选中特定的tab
2015/11/17 Javascript
jQuery EasyUI基础教程之EasyUI常用组件(推荐)
2016/07/15 Javascript
jQuery插件FusionCharts绘制的3D饼状图效果实例【附demo源码下载】
2017/03/03 Javascript
layui选项卡效果实现代码
2017/05/19 Javascript
vue.js框架实现表单排序和分页效果
2017/08/09 Javascript
vue better scroll 无法滚动的解决方法
2018/06/07 Javascript
vue click.stop阻止点击事件继续传播的方法
2018/09/04 Javascript
vue实现的仿淘宝购物车功能详解
2019/01/27 Javascript
AjaxFileUpload.js实现异步上传文件功能
2019/04/19 Javascript
jQuery实现鼠标移入显示蒙版效果
2020/01/11 jQuery
Python中分数的相关使用教程
2015/03/30 Python
Python3读取Excel数据存入MySQL的方法
2018/05/04 Python
Python socket实现的简单通信功能示例
2018/08/21 Python
Python selenium根据class定位页面元素的方法
2019/02/26 Python
Python解析命令行读取参数之argparse模块
2019/07/26 Python
Python字符编码转码之GBK,UTF8互转
2020/02/09 Python
python 中的paramiko模块简介及安装过程
2020/02/29 Python
keras:model.compile损失函数的用法
2020/07/01 Python
Python Matplotlib简易教程(小白教程)
2020/07/28 Python
基于Python制作一副扑克牌过程详解
2020/10/19 Python
css3通过scale()、rotate()实现放大、旋转
2020/03/19 HTML / CSS
保护环境建议书100字
2014/05/13 职场文书
乡党政领导班子群众路线教育实践活动个人对照检查材料
2014/09/20 职场文书
单位工作证明
2014/10/07 职场文书
单位单身证明样本
2014/10/11 职场文书
初中生思想道德自我评价
2015/03/09 职场文书
2015年爱国卫生工作总结
2015/04/22 职场文书
写给纪委的违纪检讨书
2015/05/05 职场文书
python获取淘宝服务器时间的代码示例
2021/04/22 Python
Python基础之常用库常用方法整理
2021/04/30 Python
golang内置函数len的小技巧
2021/07/25 Golang
手把手带你彻底卸载MySQL数据库
2022/06/14 MySQL