首页 > 代码库 > php批量下载文件
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); //删除文件
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。