PHP下载压缩包

PHP多文件打包并下载压缩包

	/**
     * @name 展厅详情图-获取展厅图片大小
     * @uses 获取展厅图片大小
     * @method GET
     * @author 管舒琪
     * @create 2022/7/27 11:51
     * @request
     * @param string *hui 项目ID
     * @param string *zguan 展馆号 例:5.1
     * @response 返回内容介绍,如“返回JSON结构体,具体键值如下”
     * @return string result success:成功 fail:失败
     * @return string Code 状态码 200:成功,204:失败
     * @return string scalar 资料大小 字节形式
     */
    public function actionGetDownloadSize()
    {
        // $hui = $this->get('hui');
        // $zguan = $this->get('zguan');
        $hui = 317;
        $zguan = '5.1';
       
        if(empty($hui)||empty($zguan)){
            $this->failReturn(204,'缺少必选参数');die;
        }
        
        $query = BoothHuiExhibition::find();
        $query->select('id,guan_img');
        $query->where(['hui_id'=>$hui,'exhibition_nums'=>$zguan]);
        $data = $query->asArray()->all();

        if(empty($data)){
            $this->failReturn(204,'数据为空');die;
        }
        $size = 0;//文件不存在的数量
        foreach ($data as $k => $v){
            $filename = str_replace('\\','/',dirname(dirname(dirname(__DIR__))).'/web'.$v['guan_img']);
            if(file_exists($filename)){
                $size += filesize($filename);
            }
        }
        $this->successReturn($size,'获取成功');
    }

    /**
     * @name 展厅详情-下载展厅详情图
     * @uses 下载展厅详情图
     * @method GET
     * @author 管舒琪
     * @create 2022/7/27 14:40
     * @request
     * @param string *hui 项目ID
     * @param string *zguan 展馆号 例:5.1
     * @response 返回内容介绍,如“返回JSON结构体,具体键值如下”
     * @return string result success:成功 fail:失败
     * @return string Code 状态码 200:成功,204:失败
     * @return string scalar 压缩文件名称
     */
    public function actionRawCh()
    {
        // $hui = $this->get('hui');
        // $zguan = $this->get('zguan');
        $hui = 317;
        $zguan = '5.1';
       
        if(empty($hui)||empty($zguan)){
            $this->failReturn(204,'缺少必选参数');die;
        }
        $huiInfo = HuiZhan::findOne($hui);
        $query = BoothHuiExhibition::find();
        $query->select('id,guan_img');
        $query->where(['hui_id'=>$hui,'exhibition_nums'=>$zguan]);
        $data = $query->asArray()->all();

        if(empty($data)){
            $this->failReturn(204,'数据为空');die;
        }
        $size = 0;//文件不存在的数量
        foreach ($data as $k => $v){
            $filename = str_replace('\\','/',dirname(dirname(dirname(__DIR__))).'/web'.$v['guan_img']);
            if(file_exists($filename)){
                $size += filesize($filename);
            }
        }
        //如果图片都不存在
        if($size/1024 > 1024*200){
            $this->failReturn(204,'下载资料文件过大');die;
        }

        $zip = new \ZipArchive();//PHP内置压缩函数
        $filename = $zguan.'展厅'.$huiInfo->hui_nickname.'设施图.zip';
        $zip->open('./'.$filename,$zip::CREATE);
        $empty = 0;//文件不存在的数量
        foreach ($data as $k => $v){
            $file = str_replace('\\','/',dirname(dirname(dirname(__DIR__))).'/web'.$v['guan_img']);
            if(file_exists($file)){
                $fileData = file_get_contents($file);
                $url = explode('/',$v['guan_img']);
                // $zip->addEmptyDir(str_replace('/','-',$value['czs_number']).'/'.$val['liao_name']);
                $zip->addFromString(end($url), $fileData);
                $empty = $empty+1;
            }
        }
        //如果图片都不存在
        if($empty==0){
            $this->failReturn(204,'文件不存在');
        }
        $zip->close();
        $this->successReturn($filename,'已生成压缩包');
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在使用VSCode下载PHP压缩时,你可以按照以下步骤进行操作: 1. 首先,你需要前往PHP官网的下载页面\[1\],从中下载PHP压缩。将下载压缩保存到你想要的文件夹中。 2. 解压缩下载PHP压缩,你可以选择将其解压到一个新的文件夹中,例如命名为"php"。这个文件夹将成为你的PHP根目录。 3. 接下来,你需要将下载php_xdebug-3.2.0RC1-8.1-vs16-x86_64.dll文件复制到PHP根目录下的ext目录中\[2\]。 4. 在PHP根目录下找到php.ini文件。如果你已经有了php.ini文件,直接打开它。如果没有,你可以创建一个新的php.ini文件。 5. 在php.ini文件的末尾添加以下配置\[2\]: ``` \[xdebug\] zend_extension="D:\software\php-8.1.11-Win32-vs16-x64\ext\php_xdebug-3.2.0RC1-8.1-vs16-x86_64.dll" xdebug.remote_enable = 1 xdebug.remote_autostart = 1 ``` 请确保修改路径为你实际的PHP根目录和php_xdebug-3.2.0RC1-8.1-vs16-x86_64.dll文件的路径。 这样,你就成功地利用VSCode下载PHP压缩,并进行了相关配置。希望对你有所帮助! #### 引用[.reference_title] - *1* *3* [两个插件让vscode支持php](https://blog.csdn.net/qq_43579670/article/details/129698369)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [在 VSCode 中配置 PHP 开发环境](https://blog.csdn.net/Y2ANGAO/article/details/124211658)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值