JavaScript中附件预览功能实现详解(推荐)
发布时间 - 2026-01-11 02:48:14 点击率:次由于公司的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
这样就可以正常展示了
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助~如果有疑问大家可以留言交流,谢谢大家对的支持!
# 附件预览功能
# js实现附件预览
# JavaScript中附件预览功能实现详解(推荐)
# java实现附件预览(openoffice+swftools+flexpaper)实例
# 上传图片预览JS脚本 Input file图片预览的实现示例
# js实现上传图片预览的方法
# 基于jquery实现的上传图片及图片大小验证、图片预览效果代码
# JS预览图像将本地图片显示到浏览器上
# JS 打印功能代码可实现打印预览、打印设置等
# javascript打印大全(打印页面设置/打印预览代码)
# js实现上传图片之上传前预览图片
# 在这里
# 勾选
# 不选
# 的是
# 加载
# 就会
# 这部
# 考虑到
# 还需要
# 这篇文章
# 报错
# 谢谢大家
# 第三方
# 既可
# 压缩包
# 才能够
# 传了
# 又可
# 就可以
# 多选
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
如何在七牛云存储上搭建网站并设置自定义域名?
大学网站设计制作软件有哪些,如何将网站制作成自己app?
Java解压缩zip - 解压缩多个文件或文件夹实例
购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?
JavaScript Ajax实现异步通信
移动端手机网站制作软件,掌上时代,移动端网站的谷歌SEO该如何做?
ChatGPT 4.0官网入口地址 ChatGPT在线体验官网
高防服务器租用指南:配置选择与快速部署攻略
Mybatis 中的insertOrUpdate操作
高防服务器如何保障网站安全无虞?
公司门户网站制作流程,华为官网怎么做?
Laravel怎么配置自定义表前缀_Laravel数据库迁移与Eloquent表名映射【步骤】
Win10如何卸载预装Edge扩展_Win10卸载Edge扩展教程【方法】
javascript中对象的定义、使用以及对象和原型链操作小结
Python函数文档自动校验_规范解析【教程】
Laravel如何实现文件上传和存储?(本地与S3配置)
如何在云服务器上快速搭建个人网站?
个人摄影网站制作流程,摄影爱好者都去什么网站?
极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?
简单实现Android文件上传
php嵌入式断网后怎么恢复_php检测网络重连并恢复硬件控制【操作】
Laravel怎么做缓存_Laravel Cache系统提升应用速度的策略与技巧
Android实现代码画虚线边框背景效果
深圳网站制作设计招聘,关于服装设计的流行趋势,哪里的资料比较全面?
Laravel怎么配置S3云存储驱动_Laravel集成阿里云OSS或AWS S3存储桶【教程】
Laravel用户密码怎么加密_Laravel Hash门面使用教程
如何实现建站之星域名转发设置?
西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?
如何确保西部建站助手FTP传输的安全性?
Laravel辅助函数有哪些_Laravel Helpers常用助手函数大全
Laravel如何安装Breeze扩展包_Laravel用户注册登录功能快速实现【流程】
如何在云主机上快速搭建多站点网站?
Laravel如何实现多对多模型关联?(Eloquent教程)
Laravel数据库迁移怎么用_Laravel Migration管理数据库结构的正确姿势
Claude怎样写约束型提示词_Claude约束提示词写法【教程】
Laravel Sail是什么_基于Docker的Laravel本地开发环境Sail入门
Laravel怎么发送邮件_Laravel Mail类SMTP配置教程
JavaScript如何实现音频处理_Web Audio API如何工作?
Laravel如何实现API速率限制?(Rate Limiting教程)
Laravel如何设置自定义的日志文件名_Laravel根据日期或用户ID生成动态日志【技巧】
Laravel如何实现API资源集合?(Resource Collection教程)
Laravel如何集成第三方登录_Laravel Socialite实现微信QQ微博登录
Swift中swift中的switch 语句
高性能网站服务器配置指南:安全稳定与高效建站核心方案
Firefox Developer Edition开发者版本入口
香港服务器部署网站为何提示未备案?
如何在沈阳梯子盘古建站优化SEO排名与功能模块?
如何在IIS中新建站点并配置端口与物理路径?
Laravel如何创建自定义Artisan命令?(代码示例)
Laravel如何使用模型观察者?(Observer代码示例)

