网页实现文件打包下载

前段时间收到需要批量下载文件的需求。一开始是做一个把所有需要下载的文件复制到粘贴板这样就可以去迅雷或者其他下载软件批量下载,但是这样还是不能满足用户的需求。

用户希望一点击就把所有需要下载的文件压缩成一个包后只需下载一次即可。这样整个功能就需要重新更改了。

于是思路改成用户在选择需要下载的文件之后由前端把所有需要下载的连接发送至后端,后端接收到请求后,在把所有文件压缩并生成一个压缩包,存放到临时目录后把目录连接在回传给前端即可以下载。

前端用jquery先获取所有勾选的行,并且拿到选中行对应要下载的文件连接,存放到一个数组里面。再用ajax异步发送数组到后端。

前端代码:

 $.ajax({url: "/Home/GetPackageDownLink",  //后端接口地址data: { DownLinkList: JSON.stringify(copyConten) }, //把需要发送的文件连接转为json数组type: "post",dataType: "json",success: function (data) {if (data.code == 1) {var link = document.createElement('a');//创建一个a标签,用来模拟点击下载link.href = data.message;//message是后端传回来的下载地址var reportNo = GetSelectFirstReportNo();//获取第一个文件名,用来更改下载的文件名link.setAttribute("download", reportNo + "等报告书打包文件");//更改文件夹link.click();//弹出下载}}});

后端关键代码:(这里是用c#,当然可以用其他语言实现。)

 var finalTarget = Path.Combine(targetDire, newNo + ".zip");//生成存放打包文件的目录//压缩文件ZipFiles(newDownLinkList, finalTarget, null);//newDownLinkList为需要下载的连接result = TargetFileName;  //打包完成后返回打包文件的连接地址

这里还有一点不完美就是改不了 下载的文件名待后面解决。

网页实现文件打包下载相关推荐

  1. php本地文件打包代码,PHP实战:几行代码轻松实现PHP文件打包下载zip

    <PHP实战:几行代码轻松实现PHP文件打包下载zip>要点: 本文介绍了PHP实战:几行代码轻松实现PHP文件打包下载zip,希望对您有用.如果有疑问,可以联系我们. PHP应用 //获 ...

  2. Java如何实现文件打包下载功能

        在日常项目开发中,我们会经常遇到,上传下载以及打包的常用功能,本节中就如何利用JAva自带的类库,实现zip压缩打包文件下载进行详细说明.注:不支持中文文件名,可在上传时就重命名文件名称.(下 ...

  3. java 文件打包下载

    话不多说,直接上代码 方法需要传入文件目录,比如想打包1目录下的2目录,同时2目录包含3和4目录,name就传入1目录就可以了 打包之后 /*** 文件打包下载** @param src 需要打包的文 ...

  4. java 文件下载代码_java文件下载代码实例(单文件下载和多文件打包下载)

    这篇文章主要介绍了java文件下载代码实例(单文件下载和多文件打包下载),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 最近项目有需要写文件下载相关 ...

  5. Java简单的文件打包下载

    案例: @ResponseBody@RequestMapping("/templateDownload")public void templateDownload(HttpServ ...

  6. Java 批量文件不打包下载_【Java】Java批量文件打包下载zip

    /* * 另存为 */ @RequestMapping("/saveAs.do") public @ResponseBody void saveAs(String filePath ...

  7. linux 文件打包下载到 Windows

    步骤 把文件夹打包 . tar -zcvf FileName.tar.gz FileName 把压缩包下载下来. sz www.atianhai.com.gz 用winrar 解压本地电脑的tar文件 ...

  8. zip格式文件打包下载

    步骤: 把全需要打包的数据获取路径,到数据发布在web服务器里的路径. public String download(){ // endIdSets是文件所在路径的集合 String fileName ...

  9. 使用PHP自带zlib函数 几行代码实现PHP文件打包下载zip

    2019独角兽企业重金招聘Python工程师标准>>> <?php //获取文件列表 function list_dir($dir){$result = array();if ...

最新文章

  1. 2.9-mysql主从配置-3
  2. vasp 5.2编译方法
  3. ScrollView嵌套ViewPager,ViewPage动态设置高度,嵌套事件冲突——滑动冲突解决方法
  4. Hibernate无法自动建表的缘故
  5. c 语言 volatile 关键字
  6. 如何使用InetAddress在Java中获取IP地址
  7. lol系统链接不上服务器,lol无法连接服务器【搞定思路】
  8. centos7重启后/etc/resolv.conf 被还原解决办法
  9. windows8没有剪贴板查看器clipbrd怎么办?
  10. PaddlePaddle入门整理十:PaddlePaddle训练自己的数据集
  11. 免费的网站,堪称神器
  12. mysql 8 全文检索_MySQL 8中使用全文检索示例
  13. android --------- Android10系统上访问本地相机下的视频文件报错 /storage/emulated/0/DCIM/Camera/ open failed: EACCES
  14. 查找SSH Key路径
  15. 『NLP学习笔记』Cross Entropy Loss 的硬截断、软化到 Focal Loss
  16. 记一次vue踩坑 this.$router.back()在ios失效,试了各种返回,最后发现是因为url传参的原因,去掉参数就可以了。。
  17. (推荐)彻底理解ROC曲线和AUC值
  18. 仿抖音底部菜单响应式html代码十分酷炫
  19. 为数据而生:大数据创新实践八步骤
  20. LOL九周年战斗之夜 钻石宝箱获取攻略

热门文章

  1. unity完整读取串口数据方法
  2. 博途软件在安装flexible时无法选择安装的的问题
  3. python 分解变量
  4. python脚本模式_python脚本怎么执行
  5. Android 判断一个点是否在封闭的Path内或不规则的图形内
  6. 信号与系统 - 起始状态0- 与初始状态 0+
  7. java jdk 7_jdk1.7下载|Java Development Kit (JDK) 下载「64位」-太平洋下载中心
  8. 使用PHP进行网页爬取
  9. Android平台魅力光环照耀开发征途
  10. HBASE中的compaction策略,日期分层