zoukankan      html  css  js  c++  java
  • php 获取某文件夹(比如共享文件夹)下图片并下载并压缩成zip

    1.前端部分:直接请求

      

           

    2.后端php

    //zip下载
    public function downZip(){
    $pro_code = "test"; //zip名称

    //获取列表
    $dir = input('path',''); //文件路径 eg: \192.168.199.17620200522153602501004911
    $filelist = getImgList($dir);

    $filepath = $_SERVER['DOCUMENT_ROOT'].'/downZip/'; //项目中存放zip文件路径
    if(!is_dir($filepath)){
    mkdir($filepath);
    }

    //文件名称及路径
    $filename = $filepath.$pro_code.'.zip';
    $filename = iconv("utf-8","gb2312",$filename); //解决中文不能显示问题

    if(!file_exists($filename)){
    //使用ZipArchive类重新生成文件
    $zip = new ipArchive();

    if($zip->open($filename,IPARCHIVE::CREATE)){
    foreach($filelist as $file){
    if(file_exists($file)){
    $zip->addFile($file, basename($file)); //zip写入数据
    }
    }
    }else{
    exit('无法打开文件,或者文件创建失败!');
    }

    $zip->close();
    }

    //创建后需再次判断文件是否存在
    if(!file_exists($filename)){
    exit('没有找到文件!');
    }

    //下面是输出下载;
    header("Cache-Control:max-age=0");
    header("Content-Description:FileTransfer");
    header('Content-disposition:attachment;filename='.basename($filename));//文件名
    header("Content-Type:application/zip");//zip格式的
    header("Content-Transfer-Encoding:binary");//告诉浏览器,这是二进制文件
    header('Content-Length:'.filesize($filename));//告诉浏览器,文件大小
    @readfile($filename);//输出文件;
    }
    //获取图片文件列表函数
    function getImgList($dir){
    $files = array();
    if(is_dir($dir)){
    $file_dir = scandir($dir);
    foreach($file_dir as $file){
    if($file == '.' || $file == '..'){
    continue;
    }elseif(is_dir($dir.$file.'/')){
    $files = array_merge($files, getImgList($dir.$file.'/'));
    }else{
    if(isImage($dir.$file) !== false){
    array_push($files, $dir.$file);
    }
    }
    }
    }
    return $files;
    }
  • 相关阅读:
    SQL注入
    spring+springMVC+hibernate 三大框架整合
    Spring+SpringMVC+MyBatis深入学习及搭建(十三)——SpringMVC入门程序(二)
    Spring+SpringMVC+MyBatis深入学习及搭建(十二)——SpringMVC入门程序(一)
    [Test_HTML5] HTML5笔试题1
    [Hades_BT5] backtrack5 WIFI配置
    [Hades_BT5] BackTrack5网络设置 用国内更新源更新
    [Android_cracker] 最新安卓解包工具
    [Android_cracker] 安卓破译之路
    [Android_cracker] Android DEX安全攻防战
  • 原文地址:https://www.cnblogs.com/luqiang213917/p/13756055.html
Copyright © 2011-2022 走看看