php批量下载文件

最近用codeigniter开发一个图片网站,发现单文件下载很容易实现,批量下载的话,不是很容易实现。

以下是参考网上的例子,编写的一个测试文件,遇到同样问题而不知道如何处理的朋友们可以参考下。

思路:

① 把要下载的图片信息组合到$imgs数组中

② 把要下载的图片打包成zip压缩包

③ 下载压缩包,删除服务器上的临时zip文件


<?php
$imgs[] = ‘http://demo.pic.com/column_f/large/IMG_Af8P_15.jpg‘;
$imgs[] = ‘http://demo.pic.com/column_f/large/IMG_l89P_08.jpg‘;

$filename = ‘tmp.zip‘;

$zip = new ZipArchive();
$zip->open($filename, ZipArchive::OVERWRITE);

foreach ($imgs as $key=>$vo) {
$fileData = file_get_contents($vo);
if ($fileData) {
$zip->addFromString($key.‘.jpg‘, $fileData);
}
}

$zip->close();

$file = fopen($filename, "r");
Header("Content-type: application/octet-stream");
Header("Accept-Ranges: bytes");
Header("Accept-Length: " . filesize($filename));
Header("Content-Disposition: attachment; filename=imgages.zip");
//一次只传输1024个字节的数据给客户端
$buffer = 1024; //
while (!feof($file)) {
//将文件读入内存
$file_data = fread($file, $buffer);
//每次向客户端回送1024个字节的数据
echo $file_data;
}
fclose($file);
unlink($filename); //删除文件

php批量下载文件,布布扣,bubuko.com

时间: 2025-01-02 02:48:29

php批量下载文件的相关文章

&lt;&lt;&lt; JS实现网页批量下载文件,支持PC/手机

//把下载链接放入集合里 var downloadData = new Array{"http://www.empli.com/data1.apk","http://www.empli.com/data1.apk","http://www.empli.com/data1.apk","http://www.empli.com/data1.apk"}; var downloadNum=0;//方法执行次数 circularWind

C#异步批量下载文件

C#异步批量下载文件 实现原理:采用WebClient进行批量下载任务,简单的模拟迅雷下载效果! 废话不多说,先看掩饰效果: 具体实现步骤如下: 1.新建项目:WinBatchDownload 2.先建一个Windows窗体:FrmBatchDownload,加载事件FrmBatchDownload_Load 3.放置一个Button按钮:btnStartDownLoad,单机事件btnStartDownLoad_Click 4.放置一个DataGridView:dgvDownLoad. 5.具

七牛云存储批量下载文件

public class UploadFile {         //设置好账号的ACCESS_KEY和SECRET_KEY      String ACCESS_KEY = "akey";      String SECRET_KEY = "skey";      //要上传的空间      String bucketname = "bucketname";//         //下载路径(空间里的外链复制过来)      String d

Python抓取网页&amp;批量下载文件方法初探(正则表达式+BeautifulSoup) (转)

Python抓取网页&批量下载文件方法初探(正则表达式+BeautifulSoup) 最近两周都在学习Python抓取网页方法,任务是批量下载网站上的文件.对于一个刚刚入门python的人来说,在很多细节上都有需要注意的地方,以下就分享一下我在初学python过程中遇到的问题及解决方法. 一.用Python抓取网页 基本方法: [python] view plaincopyprint? import urllib2,urllib url = 'http://www.baidu.com' req 

使用kettle批量下载文件

使用kettle批量下载文件 最新有项目中需要批量下载文件并把结果导入到数据中,通过一些实验测试,kettle确实可以胜任.问题是关键是如果通过http批量下载文件,本文将详细说明,假设你已经了解了kettle的基本知识,如果需要可以查看我的系列入门教程. 本文的示例代码可以在这里下载. 主作业 kettle的转换中没有通过http下载文件的步骤,但是job的有对应的步骤,所以在主job调用子job(Download.kjb),需要下载的文件列表通过一个转换提供. 文件列表转换 这里我仅仅使用数

Windows下使用explorer批量下载文件

背景: 客户的环境是Windows Server 2008 R2,需要每个月安装补丁,但出于安全考虑,将微软的自动更新封掉了,以至于每次安装补丁只能手动下载然后安装. 有时候每次需要下载的补丁均比较多,而服务器上有没有迅雷,QQ旋风等下载工具,也不允许安装,所以每次均手动下载,十分麻烦. ==================我是分割线======================= 此方法是通过系统自带的explorer来实现批量下载. 众所周知,当你在我的电脑中输入一个链接时,explorer会

ASP.NET批量下载文件

一.实现步骤 在用户操作界面,由用户选择需要下载的文件,系统根据所选文件,在服务器上创建用于存储所选文件的临时文件夹,将所选文件拷贝至临时文件夹.然后调用 RAR程序,对临时文件夹进行压缩,然后输出到客户端.最后删除临时文件夹. 二.代码实现 1.ASP.NET批量下载 核心代码 C# 代码   复制 //遍历服务器指定文件夹下的所有文件 string path = "uploads/Image/"; string serverPath = Server.MapPath(path);

FTP定时批量下载文件(SHELL脚本及使用方法 ) (转)

ftp -v -d -i -n -g [主机名] ,其中-v 显示远程服务器的所有响应信息:-n 限制ftp的自动登录,即不使用:.n etrc文件:-d 使用调试方式:-g 取消全局文件名.http://blog.itpub.net/20943428/viewspace-630467/ 1. 脚本实例 将以下脚本保存为 getftp.sh #!/bin/bash datesign=`date -d -95day +%Y%m%d` ftp -nv 12.2.2.28 <<!FTPRUN use

FTP定时批量下载文件(SHELL脚本及使用方法&#160;)

1. 脚本实例 将以下脚本保存为 getftp.sh #!/bin/bash  datesign=`date -d -95day +%Y%m%d` ftp -nv 12.2.2.28 <<!FTPRUN user user01 user01  prompt bin cd TXT  lcd /app/info/getftp mget ${datesign}*.txt bye  !FTPRUN  脚本说明:  #!/bin/bash #表明该文本的内容为SHELL命令 datesign=`date