php扩展文件下载,php::使用ZipArchive扩展压缩文件并下载demo

php版本>=5.2 ,zip扩展版本>=1.1.0

//$zip_file 压缩包路径,$files 需要加入压缩包的文件路径

function file_download($zip_file,$files)

{

//创建压缩包

$zip = new ZipArchive;

if($zip->open($_SERVER['DOCUMENT_ROOT'].$zip_file, ZIPARCHIVE::CREATE | ZIPARCHIVE::OVERWRITE )===true){

foreach($files as $val){

if(file_exists($_SERVER['DOCUMENT_ROOT'].$val)){

//将文件加入到压缩包

$zip->addFile($_SERVER['DOCUMENT_ROOT'].$val,array_pop(explode("/",$val)));

}

}

$zip->close();

//开始下载

$file_name = $_SERVER['DOCUMENT_ROOT'] . $zip_file; //需要下载的文件

header ( "Cache-Control: max-age=0" );

header ( "Content-Description: File Transfer" );

header ( 'Content-disposition: attachment; filename=' . basename ( $file_name ) ); // 文件名

header ( "Content-Type: application/zip" ); // zip格式的

header ( "Content-Transfer-Encoding: binary" ); // 告诉浏览器,这是二进制文件

header ( 'Content-Length: ' . filesize ( $file_name ) ); // 告诉浏览器,文件大小

@readfile ( $file_name );//输出文件;

}else{

return false;

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
我安装laravel的一个扩展时,提示没有ZipArchive 我根据国外的一个网站的提示进行操作,任然不成功,后重新修改了这个包才成功 首先要执行下面操作 brew update brew install php@7.3 brew link php@7.3 然后执行 Step 1: Install PEAR/PECL support cd /tmp curl -s -O https://pear.php.net/install-pear-nozlib.phar sudo php install-pear-nozlib.phar -d /usr/local/lib/php -b /usr/local/bin (credit) Step 2: Download zip extension source I tried installing zip with pecl, but that failed because the PHP header files were missing. So I downloaded the source for the zip extension from pecl. Step 3:下载我提供的包文件 然后解压 Step 4: Copy/modify phpsize and php-config In order to make phpize and php-config find the PHP header files in the location that XCode places them rather than in /usr/include/php -- a read-only location now -- I followed some tips I found elsewhere and copied and modified phpize and php-config to change the include directory in each of them. cp /usr/bin/phpize /usr/local/bin/phpize cp /usr/bin/php-config /usr/local/bin/php-config Step 5: Build the zip PHP extension With all of those changes in place, I could now build the zip extension. cd zip-1.15.5 phpize ./configure -with-php-config=/usr/local/bin/php-config make Step 6: Install zip PHP extension make install fails to install the extension, again because of the read-only file system. So instead I created an extension directory under /usr/local/php. mkdir -p /usr/local/php/extensions cp modules/zip.so /usr/local/php/extensions/zip.so Step 7: Update your PHP.ini Finally we need to tell PHP to load this extension. sudo vim /etc/php.ini Add the following line: extension=/usr/local/php/extensions/zip.so Restart apache with sudo apachectl restart and you'll see the zip extension being loaded now.

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值