TP5制作图片压缩包

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

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.mfbz.cn/a/181191.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

mongo DB -- aggregate分组查询后字段展示

一、分组查询 在mongoDB中可以使用aggregate中的$group操作对集合中的文档进行分组,但是查询后的数据不显示其他字段,只显示分组字段 aggregate进行分组示例 db.collection.aggregate([{$group: {_id: "$field"}},]) 查询后显示 展开只显示两个字段 二、显示所有字段…

linux通过串口传输文件

简介 在嵌入式调试过程中,我们经常会使用调试串口来查看Log或者执行指令,其实,调试串口还有另一种功能,就是传输文件,本文说明使用MobaXterm串口工具来传输文件。 环境要求 嵌入式系统需要安装lsz和lrz,…

【深度学习实验】图像处理(一):Python Imaging Library(PIL)库:图像读取、写入、复制、粘贴、几何变换、图像增强、图像滤波

文章目录 一、实验介绍二、实验环境1. 配置虚拟环境2. 库版本介绍 三、实验内容0. 安装 PIL 库1. 图像读取和写入a. 图像读取b. 图像写入c. 构建新图像 2. 图像复制粘贴a. 图像复制b. 图像局部复制c. 图像粘贴 3. 几何变换a. 图像调整大小b. 图像旋转c. 图像翻转 4. 图像增强a.…

智慧法院 | RPA+AI打造智慧执行助手,解决“案多人少”现实难题

为深化政法智能化建设,加强“智慧治理”“智慧法院”“智慧检务”“智慧警务”“智慧司法”等信息平台建设,深入实施大数据战略,实现科技创新成果同政法工作深度融合。法制日报社于今年3月继续举办了2023政法智能化建设创新案例及论文征集宣传…

在游戏开发中,实时渲染和离线渲染对于游戏平衡的影响有哪些?

实时渲染和离线渲染对游戏平衡有那些影响呢?在游戏开发中,渲染方式的选择对游戏的整体表现和玩家体验有着至关重要的作用。那么,实时渲染和离线渲染究竟有哪些利弊呢? 一、实时渲染 实时渲染,顾名思义,是…

新的预测模型的局部评价指标-pAUROCc

新的预测模型的局部评价指标-pAUROCc Background 局部评价主要是用在不平衡数据上,其合理性:1.局部评价比全局评价敏感,更容易区分模型的优劣;2.临床决策曲线(DCA)可知,模型使用过程中&#x…

【Spring集成MyBatis】MyBatis的Dao层实现(基于配置,非注解开发)

文章目录 1. MyBatis的dao层实现(传统方式)——需要写接口及其实现类2. MyBatis的代理开发方式——仅需写接口 1. MyBatis的dao层实现(传统方式)——需要写接口及其实现类 传统方式就是在项目下边建立dao包,里面包含接口及其实现类,文件结构如下&#x…

3D人脸扫描设备助力企业家数字人复刻,打破商业边界

京都薇薇推出数字人VN,以京都薇薇董事长为原型制作,赋能品牌直播、短片宣传、线上面诊等活动,进一步增强消费者对品牌的交互体验,把元宇宙与品牌相融合,推动品牌线上服务与线下服务实现数字一体化,打造一个…

Linux宝塔面板搭建Discuz论坛, 并内网穿透实现公网访问

Linux宝塔面板搭建Discuz论坛, 并内网穿透实现公网访问 文章目录 Linux宝塔面板搭建Discuz论坛, 并内网穿透实现公网访问前言1.安装基础环境2.一键部署Discuz3.安装cpolar工具4.配置域名访问Discuz5.固定域名公网地址6.配置Discuz论坛 📷 江池…

基于C#实现线段树

一、线段树 线段树又称"区间树”,在每个节点上保存一个区间,当然区间的划分采用折半的思想,叶子节点只保存一个值,也叫单元节点,所以最终的构造就是一个平衡的二叉树,拥有 CURD 的 O(lgN)的时间。 从…

XC3320 离线式、无电感交流输入线性稳压器 可替代KP3310 固定5V输出电压

XC3320 是一款紧凑型无电感设计的离线式线性稳压器。XC3320 可获得 5V输出电压。XC3320 是一种简单可靠的获得偏置供电的离线式电源解决方案。XC3320 集成了 650V 功率 MOSFET,启动控制电路,VDD 电压控制电路,AC 交流信号同步检测电路,低压差稳压器等。该…

电动机保护方式

3.3.1、电动机温度保护 温度保护是利用安装在电动机内部的温度继电器或变换器来实现的。当电动机达到一定温度时继电器动作,通过控制电路断开电动机的主电路。对于单相小容量电动机,可以用继电器直接断开动力电路。 根据温度传感器的不同可以分为&…

项目管理中的资源日历是什么?有什么作用

管理项目不仅需要规划和预算,还需要日程安排。 资源日历是一种显示项目经理或团队领导在特定时间内可用资源的工具。这种类型的项目日历可以显示团队成员和设备在特定时间段内的可用工作时间。 例如,如果一名员工每天工作 8 小时,而他已经在…

软件开发及交付的项目管理角色

在软件开发及交付过程中,通常会涉及不同的角色和职责,包括业务角色、技术角色和管理角色。这些角色在项目管理中发挥着不同的作用,以确保项目的成功和交付高质量的产品。 业务角色:包括产品经理、业务分析师和业务运营人员等职位…

MySQL数据库_01

Web后端开发_02 数据库介绍 什么是数据库? 数据库:DataBase(DB),是存储和管理数据的仓库 数据库管理系统:DataBase Management System (DBMS),操纵和管理数据库的大型软件。SQL:St…

APM工具skywalking部署

一 整体架构 整个架构,分成上、下、左、右四部分: 上部分 Agent :负责从应用中,收集链路信息,发送给 SkyWalking OAP 服务器。目前支持 SkyWalking、Zikpin、Jaeger 等提供的 Tracing 数据信息。而我们目前采用的是&…

css渐变详解(重复性线性渐变、径向渐变、重复性径向渐变的使用)

目录 线性渐变 重复性线性渐变 径向渐变 重复性径向渐变的使用 线性渐变 线性渐变是向下、向上、向左、向右、对角方向的颜色渐变。 其语法格式为: background-image: linear-gradient(side-or-corner|angle, linear-color-stop); 参数说明如下: …

【Proteus仿真】【51单片机】篮球比赛计分器

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用Proteus8仿真51单片机控制器,使用声光报警模块、动态数码管模块、按键模块等。 主要功能: 系统运行后,数码管显示比赛时间和AB队得分;系统还未开…

小白也看的懂的爬取视频操作

1.获取一段视频 可以直接从抖音下,也可以从b站上爬取(注意法律谢谢) 保护原创 b站的视频 直接复制网址链接到哔哩哔哩(bilibili)视频解析下载 - 保存B站视频到手机、电脑 去就好了,

QGIS之二十五两个面图层数据中选择图形完全一致的数据

效果 步骤 1、准备数据 2、按位置选择 在Qgis工具箱中搜索"按位置选择"工具 选择要素和比较要素根据实际选择 运行 3、结果
最新文章