PHP 生成压缩包,PHP多个文件合并成压缩包,PHP压缩包, PHP ZipArchive thinkphp 将多个文件合并成压缩包

thinkphp 怎么将文件夹压缩成zip

thinkphp 将多个文件合并成压缩包、此功能是依赖于thinkphp

         //要合并压缩的文件
        $files[0] = ‘Uploads/baojia_excel/nihao【CG20200402001】采购单(1).xls‘;
        $files[1] = ‘Uploads/baojia_excel/分类【CG20200402001】采购单(2).xls‘;
        //这里需要注意该目录是否存在,并且有创建的权限  创建test.zip压缩包
        $filename = ‘Uploads/baojia_excel/test.zip‘;
        $zip = new \ZipArchive;
        $res = $zip->open($filename, \ZipArchive::CREATE);
        if ($res === TRUE) {
            foreach ($files as $file) {
                //这里直接用原文件的名字进行打包,也可以直接命名,需要注意如果文件名字一样会导致后面文件覆盖前面的文件,所以建议重新命名
                $new_filename = substr($file, strrpos($file, ‘/‘) + 1);
                $zip->addFile($file, $new_filename);
            }
        }

        //打包zip
        $aa = $zip->close();
        //dump($aa);die();

        //可以直接重定向下载
        header(‘Location:‘.$filename);
        //或者输出下载
        header("Cache-Control: public");
        header("Content-Description: File Transfer");
        header(‘Content-disposition: attachment; filename=‘.basename($filename)); //文件名
        header("Content-Type: application/force-download");
        header("Content-Transfer-Encoding: binary");
        header(‘Content-Length: ‘. filesize($filename)); //告诉浏览器,文件大小
        readfile($filename);
                

原文地址:https://www.cnblogs.com/zc290987034/p/12677695.html

时间: 2024-08-29 23:08:02

PHP 生成压缩包,PHP多个文件合并成压缩包,PHP压缩包, PHP ZipArchive thinkphp 将多个文件合并成压缩包的相关文章

如何使用Javah 生成C/C++头文件的误区 找不到 ‘XX.XXXX.XX.CLASSNAME’ 的类文件

PS:最近在用jni,一会写java一会写c++的感觉真让人头疼.然后在使用javah的时候,遇到了一点点小问题,分享给大家. javah 是一个很棒的工具,可以通过获取.class 文件,而生成对应的C++文件,其中包含java 代码中的所有本地方法的JNI 存根,也就是定义成native 的那些方法.如果你正在使用一个类的JNI 存根,而且你已经把这个类定义为包的一部分,那么必须要完全限定类的命名.感觉javah好像一个反编译工具一样.恩,就是这样. 举例说明,我在用eclipse编写一个j

Java解析,导出Excel文件(.xlsx跟.xls两种格式)&字体修改&单元格合并

做项目时要用到Excel批量导入导出数据,网上搜了以下大部分都是.xls格式Excel文件的教程. 导入.xlsx跟.xls格式的过程差不了多少,就是导出的时候好像有点不同,而且网上也没教程,于是硬着头皮写了一个(并没有看官方Api文档( ̄▽ ̄)"). 首先是导入Jar包,在上传的项目里面已经将需要用到的Jar文件放在lib文件夹里面了,我们只需要在Eclipse里面设置一下: 这里表格信息用Teacher这个类封装: package JavaBean; public class Teacher

利用fgetc合并2个源文件的内容,到一个新的文件中

#include <stdio.h> #include <stdlib.h> //功能: 合并2个源文件的内容,到一个新的文件中 int main(int a,char *argv[]){ if(a!=4){ printf("请输入3个文件路径:%s\n", argv[0]); exit(1); } FILE *fp1,*fp2,*fp3; fp1 = fopen(argv[1],"r"); if(fp1==NULL){ printf(&qu

MVC文件图片ajax上传轻量级解决方案,使用客户端JSAjaxFileUploader插件02-多文件上传

上一篇中,使用客户端jJSAjaxFileUploader插件实现单文件异步上传,本篇实现多文件异步上传. 本篇源码在github,先看效果: ● 上传文件显示进度条. ● 停止上传按钮和关闭缩略图按钮. ● 限制上传文件的类型. ● 限制上传文件的尺寸. ●同时上传多个文件成功后显示缩略图.文件名: ● 点击界面上的删除按钮,界面删除,同步删除文件夹中文件. ● 再点击上传文件,界面追加一行新的缩略图.文件名.删除按钮: □ HomeController 把上传的文件名改成以GUID命名的格式

php将一个二维数组按照某个字段值合并成一维数组,如果有重复则将重复的合并成二维数组

版权声明:本文为博主原创文章,未经博主允许不得转载. 最近工作中碰到一个问题,用PHP将一个二维数组按照二维数组中的各个项中的某个特定字段值合并成一维数组,如果有重复则将重复的合并成二维数组,生成的二维数组的第一维的键是特定字段的值,二维的键可以是随机索引,也可以是其中的另一个字段的值.其实这个需求经常会在工作中碰到,只是碰到的时候一个有重复的就直接用之前的覆盖后面的或者用之后的覆盖之前的,这样很容易就可以处理了.很少碰到这种有一维数组又有二维数组的情况,先上代码: $a = array( 0

win10更新后文件夹无法移动和重命名,提示找不到指定文件

可以说,经历了那么多的windows系统,但是版本最多的,还是这个win10系统,但是不得不说,现在的win10系统在经历了众多版本的升级之后,也开始变得越发的完善了,不过其中的问题似乎也是蛮显著的,在一次又一次的升级过程中,Windows用户遇到的问题也是不少的. 最近有很多朋友发现了一问题,win10更新系统后出现文件夹无法移动和重命名,提示找不到指定文件的现象:          在 Windows 10 中,重命名文件或者文件夹总是自动闪掉,导致无法正常对文件夹或者文件夹进行重命名.或者

文件中的类都不能进行设计,因此未能为该文件显示设计器 VS2008(Visual Studio 2008) x64

项目属性 运行平台x64 Form2 继承 Form1 , Form2 设计器 报错 64位dll  无法加载 DLL 找不到指定的模块 原因Vs2008(Visual Studio 2008)默认 没安装64编译器 安装参照:<http://blog.csdn.net/clever101/article/details/8844314> 安装sp1补丁会报这个, 安装目录:D:\Program Files (x86)\Microsoft Visual Studio 9.0\Microsoft

thinkphp 定时执行php文件--windows系统任务计划

实现思路如下: 通过win的"任务"功能来定时执行一个bat文件,bat文件会调用php.exe文件,php.exe可以传递参数指定执行哪个类和方法 方法如下: 一,thinkphp开启cli支持 1.tp正好支持cli命令模式,手册的路径为13.7.4 如果是用的其他框架不支持cli,那么只能直接写程序了,其实就是写面向过程的最基础的php代码. 2.在入口文件下开启命令,加入一句 define('MODE_NAME', 'cli'); 网站一般还有可以通过网页访问的模块,所以可以新

Rhel7 grep在文件中查找指定的字符串,将其输出到指定文件

Rhel7 grep在文件中查找指定的字符串,将其输出到指定文件 [[email protected] findfiles]# cat /usr/share/dict/words |grep seismic anaseismic antiseismic aseismic -- [[email protected] findfiles]# cat /usr/share/dict/words |grep seismic >>/root/wordlist [[email protected] fin