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 寻找错误方法整理
Jun 15 Javascript
js使用正则实现ReplaceAll全部替换的方法
Aug 22 Javascript
对象题目的一个坑 理解Javascript对象
Dec 22 Javascript
Angular2-primeNG文件上传模块FileUpload使用详解
Jan 14 Javascript
jquery实现限制textarea输入字数的方法
Sep 06 jQuery
JS字符串去除连续或全部重复字符的实例
Mar 08 Javascript
详解如何在vue项目中使用lodop打印插件
Sep 27 Javascript
React 路由懒加载的几种实现方案
Oct 23 Javascript
详解javascript 变量提升(Hoisting)
Mar 12 Javascript
微信小程序 搜索框组件代码实例
Sep 06 Javascript
vue请求数据的三种方式
Mar 04 Javascript
javascript实现评分功能
Jun 24 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 读取文件的正确方法
2009/04/29 PHP
ThinkPHP整合百度Ueditor图文教程
2014/10/21 PHP
PHP Ajax实现无刷新附件上传
2016/08/17 PHP
PHP简单实现数字分页功能示例
2016/08/24 PHP
thinkPHP内置字符串截取函数用法详解
2016/11/15 PHP
Laravel框架文件上传功能实现方法示例
2019/04/16 PHP
thinkphp5.1框架容器与依赖注入实例分析
2019/07/23 PHP
PHP7 标准库修改
2021/03/09 PHP
学习javascript文件加载优化
2016/02/19 Javascript
javascript断点调试心得分享
2016/04/23 Javascript
AngularJS中run方法的巧妙运用
2017/01/04 Javascript
6行代码实现微信小程序页面返回顶部效果
2018/12/28 Javascript
Koa日志中间件封装开发详解
2019/03/09 Javascript
[26:52]LGD vs EG 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
Python的time模块中的常用方法整理
2015/06/18 Python
在主流系统之上安装Pygame的方法
2020/05/20 Python
一文读懂Python 枚举
2020/08/25 Python
初探CSS3中的calc()功能
2015/07/14 HTML / CSS
h5页面唤起app如果没安装就跳转下载(iOS和Android)
2020/06/03 HTML / CSS
原装进口全世界:天猫国际
2016/08/03 全球购物
施华洛世奇日本官网:SWAROVSKI日本
2018/05/04 全球购物
说出ArrayList,Vector, LinkedList的存储性能和特性
2015/01/04 面试题
AJAX的全称是什么
2012/11/06 面试题
自荐信不宜过于夸大
2013/11/06 职场文书
八年级英语教学反思
2014/01/09 职场文书
消防安全检查制度
2014/02/04 职场文书
勤俭节约倡议书
2014/04/14 职场文书
注册资产评估专业求职信
2014/07/16 职场文书
摄影专业毕业生求职信
2014/08/05 职场文书
办理信用卡收入证明范例
2014/09/13 职场文书
死者家属慰问信
2015/03/24 职场文书
合同审查法律意见书
2015/06/04 职场文书
高中地理教学反思
2016/02/19 职场文书
python requests模块的使用示例
2021/04/07 Python
CSS布局之浮动(float)和定位(position)属性的区别
2021/09/25 HTML / CSS
Python中time与datetime模块使用方法详解
2022/03/31 Python