thinkPHP压缩文件夹下的多个文件并下载

ThinkPHP5.0(九)PHP下载指定服务器目录下的文件(word文件),打包下载多个文件 需求 一般在ThinkPHP5.0中我们会上传文件到服务器的指定目录下(一般为public下的upload文件中),以达到必要时候对其下载的目的; 但是我们已知文件在服务器的路径怎么对其下载? 接下来一起详细探讨一下,下载文件的过程。 详细步骤: 路径: ../public/uploadDir/ 这个是.docx文件的存储路径,.docx文件是我们要进行下载的的目标文件; 对文件下载权限,路径... 阅读详情
 /**
    * (thinkPHP)压缩文件夹下的多个文件并下载
    * 不支持创建多个文件夹==有空完善
    * @date: 2017-6-27 下午4:01:57
    */

    function zipDowload($filename=''){
        $export_url = C('PERFOR_EXPORT_FOLDER');
        $download_url = C('XLS_DOWLOAD');
        //删除原有文件
        clear_folder($download_url);
        $download_url = $download_url.'/'.$filename.'.zip';
        $zip=new \ZipArchive();


        $download_file = array();
        $handler = opendir($export_url);
        while(($name = readdir($handler)) !== false ) {
            if($name != '.' && $name != '..') {
                $name = iconv('gb2312','utf-8',$name);
                $tag = explode('.', $name);
                if($tag[count($tag)-1] == 'xlsx' || $tag[count($tag)-1] == 'xls'){
                    $download_file[] = $export_url.'/'.$name;
                }
            }
        }
       //解决Linux下中文字符文件名问题
        $download_url = iconv("utf-8", "GB2312//IGNORE", $download_url);
        //生成并打开zip
        $res = $zip->open($download_url, \ZipArchive ::CREATE);
        if($res === TRUE) {
            foreach ($download_file as $v) {
                $v = iconv("utf-8", "GB2312//IGNORE", $v);
                $zip->addFile($v,$this->get_basename($v));
                //unlink($v);
            }
            $zip->close();
            clear_folder($export_url);
            $xls_download = C('XLS_DOWLOAD_GET');
            $url = $xls_download . '/'.$filename.'.zip';
            if(strtoupper(substr(PHP_OS,0,3)) !== 'WIN'){
                $url = iconv("utf-8", "GB2312//IGNORE", $url);
            }
            if(file_exists($download_url)){
                header('location:'.$url);
            }
        }else{
            exit('无法创建zip文件');
        }
    }
    
    /**
    * 获取文件名
    * @date: 2017-6-27 下午5:57:55
    */
    public function get_basename($filename){
        return preg_replace('/^.+[\\/]/', '', $filename);
    }
    
Thinkphp下载oss文件至本地压缩 实现原理:通过oss接口下载文件至服务器相关目录,然后进行压缩为一个zip文件,接口调用返回文件流或浏览器访问直接下载文件下载完成后删除相关目录。三、逻辑示例代码(根据应用场景更改,主要更改数据来源)四、oss下载示例代码(参数需要改为自己oss参数)一、ThinkPHP版本6.1。二、PHP版本:8.0。五、删除目录示例代码。 阅读详情

相关推荐

【PHPWord】基于ThinkPHP6的Word模板处理和导出PDF文件的带源码 | 答读者问

ThinkPHP6.0是基于现代主流开发思想而设计的全新架构版本,集简单、规范、优雅和性能于一身,是今后很长一段时间主要维护的版本。是否学习过5.*版本不重要,本入门旨在帮助你更好的理解新版,更快的使用新版开发项目。如果你了解过5.1或者之前的版本,你会发现6.0版本比5.1版本更加规范、灵活,而且还简单易用,当然升级过程需要做一些思想的转变,因为你将要和国际主流思想接轨。在学习ThinkPHP6.0PHP7基础知识:新版基于PHP7.1+开发,运用了很多PHP7的新特性;composer。

Code Metaverse 1958

THINKPHP文件压缩

THINKPHP 3.0版本的压缩

thinkphp压缩打包.rar

该资源使用thinkphp框架实现了对指定文件压缩以及解压的功能,和实现了对压缩文件进行下载的功能

php生成zip压缩包、thinkphp压缩和打包下载实例

php生成zip压缩包、thinkphp压缩和打包下载实例

武景涛的博客 3369

PHP 压缩文件文件夹文件压缩到统一文件详细代码

PHP 压缩文件文件夹文件压缩到统一文件详细代码 多文件压缩文件夹压缩 不同种类文件文件夹压缩

CodeRode的博客 1045

thinkphp文件夹生成zip压缩

thinkphp文件夹生成zip压缩

记录开发过程中收获哪些技能、每个项目的心得、遇到的坑。 1161

ThinkPHP学习笔记——文件下载

html: <a href="{:U('Class/downloadCourseware',['courseware_id'=>$val['id']])}"></a> 通过U方法定位到Class控制器下的downloadCourseware方法 php //获取到数据库存放的文件路径 。例:1.txt $dir = $classId2_info['url']; $down_host = $_SE

fuzhijieabc的博客 515

Thinkphp使用PHP自带的ZipArchive压缩文件文件夹

一、准备工作,使用phpinfo()查看有没有zip扩展 <?php echo phpinfo(); ?> 如果没有安装扩展的,请参照以下方法: 1、下载对应版本的扩展包:https://windows.php.net/downloads/pecl/releases/zip/1.13.5/,比如我是php5.6(window7_64位系统),则下载如下: 2、把解压的php_zip.dll文件放到php-5.6.27-nts/ext目录 3、在php.ini添加以下配置:

美奇软件开发工作室 2173

zip 打包_Thinkphp6利用ZipArchive打包下载文件

php中文网课程每日17点准时技术干货分享基础环境系统环境:Windows10 x64PHP集成环境:phpstudyPHP依赖管理工具:Composer(一) 下载tp6框架composer create-project topthink/think tp6(二)打包下载类...

weixin_39649405的博客 884

php框架tp6自学笔记——压缩文件下载

压缩文件压缩文件里有三个文件夹,在每个文件夹下又包含了很多文件 压缩后直接下载下来了,项目文件里的压缩包被直接删除 $dir = './stateProposal'; $zipName = "./AllStateProposal.zip"; // 如果压缩文件不存在,就创建压缩文件 if (!is_file($zipName)) { $fp = fopen($zipName, 'w');

weixin_43227482的博客 925

PHP(thinkphp6)将图片和文本转成文件导出到压缩

ZipArchive用来创建和操作压缩包的类。这三个类都是内置的类,PHP5以上无需下载。是 PHP 中用于递归遍历文件系统目录的类。2.具体业务代码。

weixin_44905544的博客 430

PHP 压缩文件夹(中文文件夹也ok)且下载到本地 填坑

真的百度用了很多办法。没有十全十美的。 填坑记录一下 纯PHP代码也试过压缩。但是不能压缩文件夹。只能把文件夹内所有文件压缩到一个文件里面。然后下载。。。。。。换 用PHP 自带的 ZipArchive 1.首先加扩展。我用的是集成xampp 。找到PHP/php.ini 加这个 extension=php_zip.dll 和打开zlib.output_comp...

hexiaoniao的博客 4236

Thinkphp HTML输出压缩

CI3.0自带了页面压缩功能,也就是将页面中的空格之类的全部去掉,这样就能省下不少的空间。 当然,TP也自带的OUTPUT_ENCODE页面压缩功能,可是当我配置OUTPUT_ENCODE=TRUE时,老是提示"无法显示此网页"错误..所以,没办法,将CI的Minify功能移过来 1、将Minify.class.php放到AUTO自动加载目录下 2、在配置文件中设置: 'MINIFY' => true, 3、在View.class.php中的render的方法增加: private function render($content,$charset='',$contentType=''){ //2013-10-3 增加milify if(C('MINIFY')){ echo Minify::compress($content); }else{ // 输出模板文件 echo $content; } }

thinkphp实现文件下载

thinkphp文件下载实例

TROUBLE I AM IN 6141

thinkphp 将页面导出成pdf

thinkphp 将页面导出成pdf 用到knp-snappy 扩展库 和wkhtmltopdf 下载如下 https://wkhtmltopdf.org/downloads.html composer安装扩展 composer require knplabs/knp-snappy //wkhtmltopdf 这里需要替换成你自己的安装位置 localhost:bin test$ wkhtmltopdf http://www.qq.com //users/yehua/desktop...

Fandwer的专栏 1087

PHP生成PDF--中文(内容、文件名)兼容

使用前提:PHP &gt;=5.3.0 即可 。这里我们使用Composer安装。不了解什么是Composer请自行Google、百度。 GitHub 包地址:https://github.com/tecnickcom/TCPDF 第一步:项目中安装TCPDF扩展包,进入项目根目录打开命令行。(这里使用的是全局安装composer命令) composer require tecnickom...

王洪彪的个人博客 327

Thinkphp文件压缩

需要先确认php.ini配置文件中是否取消注释了extension=zip和extension=openssl 来启用这些扩展。这里我采用的是php自带的。

qq_30986969的博客 405
上一篇: 台式电脑配置-备份参考
阿麦兜兜
博客等级 码龄11年 0粉丝 14原创
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值