【发布时间】:2013-12-20 04:17:45
【问题描述】:
我正在尝试上传多张图片,重新调整这些图片的大小,然后通过 codeigniter 为这些图片创建缩略图。
$config['upload_path'] = '---path---';
$config['allowed_types'] = 'gif|jpg|png';
$config['max_size'] = 1024 * 8;
$config['encrypt_name'] = FALSE;
$this->load->library('upload');
$files = $_FILES;
$cpt = count($_FILES['files']['name']);
for($i=0; $i<$cpt; $i++)
{
$_FILES['files']['name']= $files['files']['name'][$i];
$_FILES['files']['type']= $files['files']['type'][$i];
$_FILES['files']['tmp_name']= $files['files']['tmp_name'][$i];
$_FILES['files']['error']= $files['files']['error'][$i];
$_FILES['files']['size']= $files['files']['size'][$i];
$this->upload->initialize($config);
$this->upload->do_upload('files');
$tmp = $this->upload->data();
$this->load->library('image_lib');
//Thumbnail configs
$config_t['source_image'] = '---path---' . $tmp['file_name'];
$config_t['new_image'] = '--path to thumbnail ---' . $tmp['file_name'];
$config_t['create_thumb'] = TRUE;
$config_t['maintain_ratio'] = TRUE;
$config_t['width'] = 110;
$config_t['height'] = 110;
//end of configs
$this->load->library('image_lib', $config_t);
$this->image_lib->initialize($config_t);
if(!$this->image_lib->resize())
echo "Failed." . $this->image_lib->display_errors();
//Resize Configs
$config_r['source_image'] = '----path----' . $tmp['file_name'];
$config_r['maintain_ratio'] = TRUE;
$config_r['width'] = 800;
$config_r['height'] = 800;
$config_r['quality'] = 100;
//end of configs
$this->load->library('image_lib', $config_r);
$this->image_lib->initialize($config_r);
if(!$this->image_lib->resize())
echo "Failed." . $this->image_lib->display_errors();
}
图片上传工作正常,每张图片都上传,问题是图片处理:
未显示错误,但图像未调整为 800x800 像素或 100x100
编辑::
图像被复制到缩略图文件夹中,它们只是重命名了 _thumb。然而,缩略图被重新调整为 800 像素的“某物”,例如:
1289 像素乘 800 像素
它们应该是 100px x 100px,原始图像仍然没有被调整大小
编辑::
如果我删除重新调整大小的配置:
//Resize Configs
$config_r['source_image'] = '----path----' . $tmp['file_name'];
$config_r['maintain_ratio'] = TRUE;
$config_r['width'] = 800;
$config_r['height'] = 800;
$config_r['quality'] = 100;
//end of configs
$this->load->library('image_lib', $config_r);
$this->image_lib->initialize($config_r);
if(!$this->image_lib->resize())
echo "Failed." . $this->image_lib->display_errors();
缩略图重新调整大小/上传效果很好,只需要想办法做到这两点
【问题讨论】:
-
你检查目录权限了吗?
-
两个目录都是777
-
你检查
$config_r['source_image']是否存在你的路径是正确的为什么不直接用这个$tmp['full_path']替换这个'----path----' . $tmp['file_name'] -
很好的建议,但是我测试了每条路径,它们都是有效的。我得到了缩略图,我只是想不出同时调整大小的方法
标签: php image codeigniter file-upload