TP5制作图片压缩包

news2024/9/28 19:24:15

目标:将多张图片制成在一个压缩包内,供调取使用

public function test()
{
    //引入压缩包类
    $zip = new \ZipArchive();
    //新定义一个zip包
    $zipname = ROOT_PATH.'/public/zip/'.date("YmdHis").rand(111,999).'.zip';
            
    if ($zip->open($zipname, \ZipArchive::CREATE) === true){

        $zip->addFile(ROOT_PATH.$request['permit'],date("YmdHis").rand(111,999).'.jpg');
        $zip->addFile(ROOT_PATH.$request['bank_pic'],date("YmdHis").rand(111,999).'.jpg');
        $zip->addFile(ROOT_PATH.$request['legal_cert_pic'][0],date("YmdHis").rand(111,999).'.jpg');
        $zip->addFile(ROOT_PATH.$request['legal_cert_pic'][1],date("YmdHis").rand(111,999).'.jpg');  
                      
         $zip->close();
     }


}

一般的项目都是会有这个的压缩包的类的

可以先phpinfo(),查看一下

可以直接用

至于去调用的话,这个zip是php内部封装的,不用像使用Excel一样的去在文件头部写引入什么的

也可以直接利用phpstrom自己的纠错处理功能,自己去引入处理了

$zip = new \ZipArchive();

需要注意的是,写文件路径的时候,很多的博客博主,都是示例图片,同目录下面的什么test.jpg,导致在实际使用的时候,还是会遇到很多的问题,我暂时将我遇到的两个问题给例举说明一下,希望能帮到其他人

问题一:

        不生成文件,不生成图片,打印zip文件路径,和图片路径发现确实是正确的.需要注意的是

不能使用

$_SERVER['SERVER_NAME'].$url;

应该用ROOT_PATH代替,上面那个会打印出网址来,但是目录结构在使用时候是错的

ROOT_PATH是实际的绝对路径,是可以读取到图片的

问题二:

打印目录有问题

它会解析绝对路径里面的斜杠,然后建立好几层的文件夹

这个时候,给重新改一下名字就好

因为我这个上传的图片都是jpg,所以直接都是jpg了,图片格式不同的话,可以提前先获取图片格式,然后重命名成对应格式即可

直接目录结构就对了,用str_replace()去转义,也没啥作用,并不能解决问题

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1242766.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于Vue+SpringBoot的APK检测管理系统

项目编号: S 038 ,文末获取源码。 \color{red}{项目编号:S038,文末获取源码。} 项目编号:S038,文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 开放平台模块2.3 软…

外设——CAN总线收发器TJA1043

目录 1. 引脚 2. 工作模式 3. 5种模式和7种状态标识的理解和使用 1. 引脚 2. 工作模式 该收发器相较于普通收发器,引脚多了几个,就是功能等多了。TJA1043支持五种操作模式,就是通过控制引脚STB_N和EN来原则。五种模式: 正常模式…

Raptor安装

Raptor官网:https://raptor.martincarlisle.com/ 进入官网后,下拉找到 Download RAPTOR,windows系统的选择Windows Users 下载完成后打开,选择“next” 修改一下路径,不要放到C: 继续next 完结撒花

2023亚太杯数学建模C题思路代码 - 我国新能源电动汽车的发展趋势

1 赛题 问题C 我国新能源电动汽车的发展趋势 新能源汽车是指以先进技术原理、新技术、新结构的非常规汽车燃料为动力来源( 非常规汽车燃料指汽油、柴油以外的燃料),将先进技术进行汽车动力控制和驱动相结 合的汽车。新能源汽车主要包括四种类型&#x…

Redis-Day1基础篇(初识Redis, Redis常见命令, Redis的Java客户端)

Redis-Day1基础篇 初识Redis认识NoSQL认识Redis安装Redis启动RedisRedis客户端 Redis命令数据结构介绍通用命令操作命令StringHashListSetSortedSet Redis的Java客户端客户端对比Jedis客户端Jedis快速入门Jedis连接池 SpringDataRedis客户端SpringDataRedis概述SpringDataRedis…

CS2的到来会对csgo产生什么影响?

从左手持枪到教练观战位,周四更新的CS新版本缺乏CSGO里很多关键功能。社区服务器和创意工坊地图,目前最重要的功能缺失是创意工坊地图和社区服务器。这些社区制作的地图长期以来一直是玩家磨练技能的首选场所,从死斗服务器到用来练习瞄准、跑…

使用Pytorch从零开始构建LSTM

长短期记忆(LSTM)网络已被广泛用于解决各种顺序任务。让我们了解这些网络如何工作以及如何实施它们。 就像我们一样,循环神经网络(RNN)也可能很健忘。这种与短期记忆的斗争导致 RNN 在大多数任务中失去有效性。不过&a…

Java Web 学习之路(1) —— 前端篇

文章目录 前言1. JS1.1 引入方式1.2 基础语法1.3 函数1.4 对象1.5 事件监听 2. Vue3. Ajax4. Element5. Nginx 前言 在学习后端前,还需要大致了解下前端的一些知识,所以本篇就先快速把前端的一些知识过一遍。本篇不含过多干货和技术知识,仅仅…

13年测试老鸟,APP性能测试-响应时间与指标总结整理...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 1、性能指标在性能…

zerotier + rclone 异地同步minio文件

zerotier rclone 异地同步minio文件 场景说明解决方案部署zerotier私有化服务docker部署zerotierzerotier客户端下载加入虚拟网络web控制台设置测试网络连通性 使用rclone同步minio数据解压后文件结构使用cmd配置rclone本地minio配置远程minio配置 查看配置 同步文件 场景说明…

java:CommandLineRunner命令行操作

背景 CommandLineRunner是一个SpringBoot提供的接口,这个接口可以让我们在SpringBoot启动之后,执行一些特定的命令行操作。 实现CommandLineRunner接口后,SpringBoot在启动的时候会自动执行run方法。通常,我们可以在run方法中进…

【计算思维题】少儿编程 蓝桥杯省赛考试计算思维真题 中小学生计算思维真题详细解析第12套

中小学生蓝桥杯计算思维题真题解析第12套 1、机器人可以向上、下、左、右移动,每步移动一个格我们把机器人移动到某一格子的最短步数,叫做格子与机器人的距离。在下图中,与机器人的距离不超过3的所有格子中,一共有多少个“X”标志? A、6 B、7 C、8 D、9 答案:C 考点…

设计高手的秘密武器:5款让平面作品更出彩的软件

平面设计是一种迷人而多样化的艺术形式,它结合了颜色、形状、排版和创造力,通过图像和文本传达信息。市场上有各种各样的平面设计软件,选择合适的设计软件是成为优秀设计师的重要一步。为了降低软件成本,大多数设计师会优先使用免…

Windows如何使用key登录Linux服务器

场景:因为需要回收root管理员权限,禁止root用户远程登录,办公环境只允许普通用户远程登录,且不允许使用密码登录。 一、生成与配置ssh-key 1.使用root管理员权限登录到目标系统。 2.创建一个新的普通用户,和设置密码用…

c++版本opencv计算灰度图像的轮廓点

代码 #include<iostream> #include<opencv.hpp>int main() {std::string imgPath("D:\\prostate_run\\result_US_20230804_141531\\mask\\us\\104.bmp");cv::Mat imgGray cv::imread(imgPath, 0);cv::Mat kernel cv::getStructuringElement(cv::MORPH…

万宾科技智能井盖传感器效果,特点有哪些?

现在城市发展越来越好&#xff0c;对基础设施的改造越来越多&#xff0c;比如修路搭桥、整改生态等都是为民服务的好工程。平时走在路上我们享受着平整的路面&#xff0c;井然有序的交通也为我们带来很大的方便。但是一个又一个的井盖看起来无关紧要&#xff0c;实际上如果路上…

羊大师教你如何科学控制体重,轻松瘦下来

羊大师教你如何科学控制体重&#xff0c;轻松瘦下来 我们都知道&#xff0c;控制体重对于保持健康和美丽至关重要。然而&#xff0c;许多人在减肥的道路上走得波折重重&#xff0c;常常陷入挫败和不知所措的境地。那么&#xff0c;如何科学控制体重&#xff0c;轻松瘦下来呢&a…

Rust语言入门教程(二) - 变量与作用域

变量与作用域 变量的声明与初始化 Rust的基本语法格式如下&#xff1a; fn main(){let bunnies 2; }语句以分号结尾&#xff0c;用花括号包含语句块。 Rust的语法其实借鉴了很多其他的语言&#xff0c;比如C语言和Python&#xff0c; 所以变量定义的格式看起来也跟很多我们…

中期财报解读:内地业务增长失速,维他奶还能做回豆奶一哥吗?

维他奶虽然起源于中国香港&#xff0c;但却是不少内地人的儿时回忆。 这与维他奶的业务布局侧重点有关&#xff0c;中国内地一直是维他奶最重要的市场。11月21日&#xff0c;维他奶公布了截至2023年9月30日止6个月的2024财年中期业绩。财报显示&#xff0c;维他奶业务构成中&a…

基于框架的线性回归

线性回归是机器学习中最简单和最常用的回归方法之一。它建立了自变量和因变量之间的线性关系&#xff0c;并通过拟合一条直线或超平面来预测和分析数据。 基于框架的线性回归是构建线性回归模型的一种常见方法&#xff0c;它利用现有的机器学习框架来实现线性回归模型的建立、…