Thinkphp下载图片至压缩包

PHP版本:8.0,Thinkphp8.0

1.生成图片数据,代码示例

$imgArr = [
    ['full_path' => '完整路径','name' => '图片名称']
]

2.定义临时文件

3.创建压缩包,添加文件至压缩包

4.关闭压缩包

5.完整示例代码

  //  获取图片地址
        $imgPath = [];
        //  定义临时文件地址
        $tempDir = public_path() . '/tmp/';
        // 确保临时目录存在
        if (!is_dir($tempDir)) {
            mkdir($tempDir, 0777, true);
        }

        // 压缩包文件名
        $zipFileName = 'tmp.zip';
        //  压缩包地址
        $zipUrl = $tempDir . $zipFileName;

        // 创建或打开压缩包
        $zip = new ZipArchive();
        $resZip = $zip->open($zipUrl, ZipArchive::CREATE | ZipArchive::OVERWRITE);
        if ($resZip === true) {
            //   压缩包创建成功
            // 遍历图片URL列表
            foreach ($imgPath as $index => $val) {
                // 获取图片内容
                $imageContent = file_get_contents($val['full_path']);
                if ($imageContent === false) {
                    echo "无法下载图片: {$val['name']}\n";
                    continue;
                }
                // 生成本地保存的文件名
                $savePath = $tempDir . $val['name'];
                // 保存图片到临时目录
                file_put_contents($savePath, $imageContent);
                // 将图片添加到压缩包
                $zip->addFile($savePath, $val['name']);
                // 删除临时文件(可选,如果你不需要保留它们)
                unlink($savePath);
            }
        }
        // 关闭压缩包
        $zip->close();

        echo '压缩成功!';

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
<?php class ThumbHandler { var $dst_img;// 目标文件 var $h_src; // 图片资源句柄 var $h_dst;// 新图句柄 var $h_mask;// 水印句柄 var $img_create_quality = 100;// 图片生成质量 var $img_display_quality = 80;// 图片显示质量,默认为75 var $img_scale = 0;// 图片缩放比例 var $src_w = 0;// 原图宽度 var $src_h = 0;// 原图高度 var $dst_w = 0;// 新图总宽度 var $dst_h = 0;// 新图总高度 var $fill_w;// 填充图形宽 var $fill_h;// 填充图形高 var $copy_w;// 拷贝图形宽 var $copy_h;// 拷贝图形高 var $src_x = 0;// 原图绘制起始横坐标 var $src_y = 0;// 原图绘制起始纵坐标 var $start_x;// 新图绘制起始横坐标 var $start_y;// 新图绘制起始纵坐标 var $mask_word;// 水印文字 var $mask_img;// 水印图片 var $mask_pos_x = 0;// 水印横坐标 var $mask_pos_y = 0;// 水印纵坐标 var $mask_offset_x = 5;// 水印横向偏移 var $mask_offset_y = 5;// 水印纵向偏移 var $font_w;// 水印字体宽 var $font_h;// 水印字体高 var $mask_w;// 水印宽 var $mask_h;// 水印高 var $mask_font_color = "#ffffff";// 水印文字颜色 var $mask_font = 2;// 水印字体 var $font_size;// 尺寸 var $mask_position = 0;// 水印位置 var $mask_img_pct = 50;// 图片合并程度,值越大,合并程序越低 var $mask_txt_pct = 50;// 文字合并程度,值越小,合并程序越低 var $img_border_size = 0;// 图片边框尺寸 var $img_border_color;// 图片边框颜色 var $_flip_x=0;// 水平翻转次数 var $_flip_y=0;// 垂直翻转次数 var $cut_type=0;// 剪切类型 var $img_type;// 文件类型

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值