我试图压缩codeigniter php网站中图像的大小,并在控制器中编写了以下代码:

$this->load->library('image_lib');
$this->load->library('upload');
$image = array();
$ImageCount = count($_FILES['pimage']['name']);
for($i = 0; $i < $ImageCount; $i++){
    $_FILES['file']['name']       = $_FILES['pimage']['name'][$i];
    $_FILES['file']['type']       = $_FILES['pimage']['type'][$i];
    $_FILES['file']['tmp_name']   = $_FILES['pimage']['tmp_name'][$i];
    $_FILES['file']['error']      = $_FILES['pimage']['error'][$i];
    $_FILES['file']['size']       = $_FILES['pimage']['size'][$i];
    
    // File upload configuration
    $uploadPath = './uploads/products/';
    $config['image_library'] = 'gd2';
    
    $config['upload_path'] = $uploadPath;
    $config['allowed_types'] = 'jpg|jpeg|png|gif';
    $config['quality'] = '60%';
    
    // Load and initialize upload library
    $this->load->library('upload', $config);
    $this->upload->initialize($config);
    
    // Upload file to server
    if($this->upload->do_upload('file')){
        // Uploaded file data
        $imageData = $this->upload->data();
        // $uploadImgData[$i]['image_name'] = $imageData['file_name'];
        $uploadImgData[] = $imageData['file_name'];
    }
}

但上传后的图像仍然保存在相同的大小,谁能告诉我这里出了什么问题?

推荐答案

您需要将配置设置与库操作配对,如调整大小(R)、裁剪(C)、旋转(X)或水印(W).

参见Processing Methods

and Preferences:

Preference Default Value Options Description Availability
quality 90% 1 - 100% Sets the quality of the image. The higher the quality the larger the file size. R, C, X, W

目前,您只需设置一组配置数据,并在没有处理方法的情况下上载图像,因此没有任何更改.

Php相关问答推荐

根据WooCommerce产品类别自定义数量输入步骤

在WooCommerce Checkout帐单地址字段后插入自定义按钮

Laravel迁移返回SQL错误,但SQL有效且工作正常

Symfony Api平台:按自定义实体方式排序结果

使用PHP阅读XML提要

如何在Foreach语句中使用php和li按降序排序?

如何在Livewire 3 Form类中做依赖注入?

服务器迁移后无法上载文件-可能存在权限问题

根据WooCommerce Cart小计阈值自动应用优惠券

如何在Laravel Model中自定义多个日期属性的日期格式?

是否有条件判断是否发布了另一个Wordpress页面?

如何使用PHP从TXM(XML)标记中读取特定属性

在 PHP 中将字符串分解为数组(字符串类似于 WP 短代码)

Filament PHP v3:在禁用的表单字段上,ID 不会写入数据库

在 Heroku 上部署 Sylius - 路由不正确

将图像作为 PHP post 响应发送到浏览器

Laravel 发送邮箱问题 Swift_TransportException

CodeIgniter 4中嵌套过滤器组不起作用

如何在WooCommerce管理产品列表中显示运输类别列

在WooCommerce我的账户单个订单页面中添加订单商品部分和按钮