php多张图片下载(zip压缩)

2024-01-22 19:48

本文主要是介绍php多张图片下载(zip压缩),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

代码快实现逻辑

简单实现多张图片下载功能

  1. ZipArchive 是php自带的类库可以使用这个自带的类库进行zip下载的实现
  2. zipname  /var/www/imgzip.zip 这个是定义一个目录下面那个$zip->open创建切判断是否有这个文件。是否能打开这个文件
  3. 分两种情况第一种是图片根代码在一个服务器则不需要再次下载图片直接可以将图片写入zip文件然后进行下载。第二种情况是图片在七牛云服务器或者在别的DNS服务上则需要利用file_get_contents抓取然后根据二进制流把图片直接写入你创建好的zip文件里面也就是$zip->addFromString进行实现的
  4. 然后就是下载图片 然后删除创建成功的zip包
        $zip = new \ZipArchive ();$zipname = "/var/www/imgzip.zip";if ($zip->open($zipname, \ZIPARCHIVE::CREATE)!==TRUE) {echo '无法打开文件,或者文件创建失败';die;}$fileArr = explode(',',$data['record_con']);//多张图片的地址foreach ( $fileArr as $file ) {$url = $this->qnDownload($file);//这里将服务器上的文件添加到下载内容中,并重新赋值下载zip文件内该文件的路径$fileContent = file_get_contents($url);//添加图片。参数1 文件名字  参数二 二进制流$zip->addFromString(basename($file), $fileContent);
//            $zip->addFile (  $url,basename($url));}$zip->close ();header ( "Content-Type: application/zip" );header ( "Content-Transfer-Encoding: Binary" );header ( "Content-Length: " . filesize ( $zipname ) );header ( "Content-Disposition: attachment; filename=\"" . basename ( $zipname ) . "\"" );readfile ( $zipname );@unlink ( $zipname );

这篇关于php多张图片下载(zip压缩)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/634054

相关文章

PHP执行php.exe -v命令报错的解决方案

《PHP执行php.exe-v命令报错的解决方案》:本文主要介绍PHP执行php.exe-v命令报错的解决方案,文中通过图文讲解的非常详细,对大家的学习或工作有一定的帮助,需要的朋友可以参考下... 目录执行phpandroid.exe -v命令报错解决方案执行php.exe -v命令报错-PHP War

Qt实现文件的压缩和解压缩操作

《Qt实现文件的压缩和解压缩操作》这篇文章主要为大家详细介绍了如何使用Qt库中的QZipReader和QZipWriter实现文件的压缩和解压缩功能,文中的示例代码简洁易懂,需要的可以参考一下... 目录一、实现方式二、具体步骤1、在.pro文件中添加模块gui-private2、通过QObject方式创建

hdu1043(八数码问题,广搜 + hash(实现状态压缩) )

利用康拓展开将一个排列映射成一个自然数,然后就变成了普通的广搜题。 #include<iostream>#include<algorithm>#include<string>#include<stack>#include<queue>#include<map>#include<stdio.h>#include<stdlib.h>#include<ctype.h>#inclu

hdu1565(状态压缩)

本人第一道ac的状态压缩dp,这题的数据非常水,很容易过 题意:在n*n的矩阵中选数字使得不存在任意两个数字相邻,求最大值 解题思路: 一、因为在1<<20中有很多状态是无效的,所以第一步是选择有效状态,存到cnt[]数组中 二、dp[i][j]表示到第i行的状态cnt[j]所能得到的最大值,状态转移方程dp[i][j] = max(dp[i][j],dp[i-1][k]) ,其中k满足c

PHP原理之内存管理中难懂的几个点

PHP的内存管理, 分为俩大部分, 第一部分是PHP自身的内存管理, 这部分主要的内容就是引用计数, 写时复制, 等等面向应用的层面的管理. 而第二部分就是今天我要介绍的, zend_alloc中描写的关于PHP自身的内存管理, 包括它是如何管理可用内存, 如何分配内存等. 另外, 为什么要写这个呢, 因为之前并没有任何资料来介绍PHP内存管理中使用的策略, 数据结构, 或者算法. 而在我们

php中json_decode()和json_encode()

1.json_decode() json_decode (PHP 5 >= 5.2.0, PECL json >= 1.2.0) json_decode — 对 JSON 格式的字符串进行编码 说明 mixed json_decode ( string $json [, bool $assoc ] ) 接受一个 JSON 格式的字符串并且把它转换为 PHP 变量 参数 json

如何将文件夹里的PHP代码放到一个文件里

find ./dir -name "*.php" -exec 'cat' {} \; > dir.out

PHP抓取网站图片脚本

方法一: <?phpheader("Content-type:image/jpeg"); class download_image{function read_url($str) { $file=fopen($str,"r");$result = ''; while(!feof($file)) { $result.=fgets($file,9999); } fclose($file); re

PHP防止SQL注入详解及防范

SQL 注入是PHP应用中最常见的漏洞之一。事实上令人惊奇的是,开发者要同时犯两个错误才会引发一个SQL注入漏洞。 一个是没有对输入的数据进行过滤(过滤输入),还有一个是没有对发送到数据库的数据进行转义(转义输出)。这两个重要的步骤缺一不可,需要同时加以特别关注以减少程序错误。 对于攻击者来说,进行SQL注入攻击需要思考和试验,对数据库方案进行有根有据的推理非常有必要(当然假设攻击者看不到你的

PHP防止SQL注入的方法(2)

如果用户输入的是直接插入到一个SQL语句中的查询,应用程序会很容易受到SQL注入,例如下面的例子: $unsafe_variable = $_POST['user_input'];mysql_query("INSERT INTO table (column) VALUES ('" . $unsafe_variable . "')"); 这是因为用户可以输入类似VALUE”); DROP TA