php多文件打包下载的实例代码

最近整理文档,搜刮出一个php多文件打包下载的实例代码,稍微整理精简一下做下分享。

需要同时下载多个文件时,大部分浏览器都不支持多文件同时下载,可以采用JavaScript脚本动态生成多个链接,但是需要用户多次点击下载对话框,用户体验不好,并且有些浏览器还不兼容。此时多文件打包下载帮你解决这个问题。

$filename = "test.zip";
$datalist=array('./pubfile/1.jpg','./pubfile/2.jpg');
if(!file_exists($filename)){
 $zip = new ZipArchive();
 if ($zip->open($filename, ZipArchive::CREATE)==TRUE) {
  foreach( $datalist as $val){
   if(file_exists($val)){
    $zip->addFile( $val, basename($val));
   }
  }
  $zip->close();
 }
}
if(!file_exists($filename)){
 exit("无法找到文件");
}
header("Cache-Control: public");
header("Content-Description: File Transfer");
header('Content-disposition: attachment; filename='.basename($filename)); //文件名
header("Content-Type: application/zip"); //zip格式的
header("Content-Transfer-Encoding: binary"); //告诉浏览器,这是二进制文件
header('Content-Length: '. filesize($filename)); //告诉浏览器,文件大小
@readfile($filename);

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • PHP实现图片批量打包下载功能

    上次遇到一个需要打包下载批量图片的问题,找了一下发现这个好方法,记录一下. 首先新建一个zipfile打包类: <?php class zipfile { var $datasec = array (); var $ctrl_dir = array (); var $eof_ctrl_dir = "\x50\x4b\x05\x06\x00\x00\x00\x00"; var $old_offset = 0; function unix2_dostime($unixtime = 0

  • PHP/ThinkPHP实现批量打包下载文件的方法示例

    前言 本文主要给大家介绍的是关于PHP/ThinkPHP实现批量打包下载文件的相关内容,分享出来供大家参考学习,话不多说了,来一起看看详细的介绍: 需求描述: 有数个文件,包含图片,文档.需要根据条件自动打包成压缩包,提供下载. 解决(ZipArchive 类): PHP提供了ZipArchive 类可为我们实现这一功能,demo: <?php $files = array('image.jpeg','text.txt','music.wav'); $zipname = 'enter_any_n

  • PHP在线打包下载功能示例

    本文实例讲述了PHP在线打包下载功能实现方法.分享给大家供大家参考,具体如下: 昨天晚上,为了弄这个打包下载的事,弄的事焦头烂额.有几个问题,第一个是开始PHP_ZIP.dll的问题.话说只要把PHP.INI里面的extend_dir里面的前的";"号去掉.再重启IIS或者apache就可以了. 问题是老是找不到系统配置的真正的PHP.INI. PHP配置图 第二个是告诉你配置文档的路径,按着找就可以了.我当时脑袋秀逗了,浪费了很多时间. 这个开启PHP_ZIP扩展库以后,就可以开始打

  • 几行代码轻松实现PHP文件打包下载zip

    本文实例为大家分享了PHP文件打包下载zip的具体代码,供大家参考,具体内容如下 <?php //获取文件列表 function list_dir($dir){ $result = array(); if (is_dir($dir)){ $file_dir = scandir($dir); foreach($file_dir as $file){ if ($file == '.' || $file == '..'){ continue; } elseif (is_dir($dir.$file))

  • php多文件打包下载的实例代码

    最近整理文档,搜刮出一个php多文件打包下载的实例代码,稍微整理精简一下做下分享. 需要同时下载多个文件时,大部分浏览器都不支持多文件同时下载,可以采用JavaScript脚本动态生成多个链接,但是需要用户多次点击下载对话框,用户体验不好,并且有些浏览器还不兼容.此时多文件打包下载帮你解决这个问题. $filename = "test.zip"; $datalist=array('./pubfile/1.jpg','./pubfile/2.jpg'); if(!file_exists(

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

    这篇文章主要介绍了java文件下载代码实例(单文件下载和多文件打包下载),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 最近项目有需要写文件下载相关代码,这边提交记录下相关代码模块,写的不太好,后期再优化相关代码,有好的建议,可留言,谢谢. 1)单文件下载 public String oneFileDownload(HttpServletRequest request,HttpServletResponse response){ //针对需求需

  • Struts2 控制文件上传下载功能实例代码

    之前介绍servlet3.0新特性的时候有提到过servlet API提供了一个part类来实现对文件的上传和保存,Struts其实是在其基础上做了进一步的封装,更加简单易用.至于文件下载,Struts贯彻AOP 思想,在下载之前提供对用户权限控制的API. 下面我们将详细介绍上传和下载的相关内容. 一.Struts文件上传机制 想要实现文件上传功能,页面的表单的method属性必须被指定为post,还有enctype属性必须为multipart/form-data,该值表示上传的内容将会以二进

  • SpringMVC+Ajax实现文件批量上传和下载功能实例代码

    今天做了文件的上传下载,小小总结一下,基本的web项目建立及SpringMVC框架搭建此处不详细写出来了. 上传form: <form id="uploadfiles" enctype="multipart/form-data"> <input type="file" multiple="multiple" id="file_upload" name="file_upload&q

  • 微信服务器中下载文件到本地的实例代码

    从微信服务器中下载文件到本地的实例代码,如下所示: //从微信服务器中下载文件到本地 public JsonResult UploadRecord(string ServerId) { try { member m = base.CurrentUser; string msg = "成功"; bool success = true; SiteSettingsInfo setting = base.CurrentSiteSetting; string file = string.Empt

  • java中压缩文件并下载的实例详解

    当我们对一些需要用到的资料进行整理时,会发现文件的内存占用很大,不过是下载或者存储,都不是很方便,这时候我们会想到把文件变成zip格式,即进行压缩.在正式开始压缩和下载文件之前,我们可以先对zip的格式进行一个了解,然后再就具体的方法给大家带来分享. 1.ZIP文件格式 [local file header + file data + data descriptor]{1,n} + central directory + end of central directory record 即 [文件

  • 微信语音上传 下载功能实例代码

    假如现在有一个按钮 <div class="inp_btn voice_btn active" id="record"> 按住 说话 </div> 下面就是调用微信jssdk的方法 var recorder; var btnRecord = $('#record'); var startTime = 0; var recordTimer = 300; // 发语音 $.ajax({ url: 'url请求需要微信的一些东西 下面success

  • BootStrap fileinput.js文件上传组件实例代码

    1.首先我们下载好fileinput插件引入插件 <span style="font-size:14px;"><link type="text/css" rel="stylesheet" href="fileinput/css/fileinput.css" rel="external nofollow" /> <script type="text/javascript

  • Android中使用七牛云存储进行图片上传下载的实例代码

    Android开发中的图片存储本来就是比较耗时耗地的事情,而使用第三方的七牛云,便可以很好的解决这些后顾之忧,最近我也是在学习七牛的SDK,将使用过程在这记录下来,方便以后使用. 先说一下七牛云的存储原理,上面这幅图片是官方给出的原理图,表述当然比较清晰了. 可以看出,要进行图片上传的话可以分为五大步: 1. 客户端用户登录到APP的账号系统里面: 2. 客户端上传文件之前,需要向业务服务器申请七牛的上传凭证,这个凭证由业务服务器使用七牛提供的服务端SDK生成: 3. 客户端使用七牛提供的客户端

随机推荐