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代码示例)