【发布时间】:2011-10-24 14:08:22
【问题描述】:
我正在尝试上传 3 张图像并在每次上传图像时调整它们的大小我将图像名称放入数组 images,但是在方法结束时,当我 print_r($images) 我只得到最后上传的图片的名称,谁能告诉我这是为什么?
这是我的代码,
// lets get rid of any old configs
$secondaryConfig['upload_path'] = './media/uploads/news/';
$secondaryConfig['allowed_types'] = 'gif|jpg|png';
$secondaryConfig['max_size'] = '4000';
$secondaryConfig['max_width'] = '230';
$secondaryConfig['max_height'] = '120';
$secondaryManipulationConfig['image_library'] = 'gd2';
$secondaryManipulationConfig['create_thumb'] = FALSE;
$secondaryManipulationConfig['maintain_ratio'] = TRUE;
$secondaryManipulationConfig['width'] = 132;
$secondaryManipulationConfig['height'] = 80;
//image_1
$this->upload->initialize($secondaryConfig);
if (!$this->upload->do_upload('image_1'))
{
$data['error_image_1'] = $this->upload->display_errors();
$this->template->build('admin/news/edit', $data);
return;
}
else
{
$image = $this->upload->data();
$images[] = $image['file_name'];
$this->image_lib->initialize($secondaryManipulationConfig);
$secondaryManipulationConfig['source_image'] = './media/uploads/news/'.$image['file_name'];
if (!$this->image_lib->resize())
{
$data['error_image_1'] = $this->image_lib->display_errors();
$this->template->build('admin/news/edit', $data);
return;
}
}
$this->upload->initialize($secondaryConfig);
if (!$this->upload->do_upload('image_2'))
{
$data['error_image_2'] = $this->upload->display_errors();
$this->template->build('admin/news/edit', $data);
return;
}
else
{
$image = $this->upload->data();
$images[] = $image['file_name'];
$this->image_lib->initialize($secondaryManipulationConfig);
$secondaryManipulationConfig['source_image'] = './media/uploads/news/'.$image['file_name'];
if (!$this->image_lib->resize())
{
$data['error_image_2'] = $this->image_lib->display_errors();
$this->template->build('admin/news/edit', $data);
return;
}
}
//image_3
$this->upload->initialize($secondaryConfig);
if (!$this->upload->do_upload('image_3'))
{
$data['error_image_3'] = $this->upload->display_errors();
$this->template->build('admin/news/edit', $data);
return;
}
else
{
$image = $this->upload->data();
$images[] = $image['file_name'];
$this->image_lib->initialize($secondaryManipulationConfig);
$secondaryManipulationConfig['source_image'] = './media/uploads/news/'.$image['file_name'];
if (!$this->image_lib->resize())
{
$data['error_image_3'] = $this->image_lib->display_errors();
$this->template->build('admin/news/edit', $data);
return;
}
}
【问题讨论】:
-
我遇到了同样的问题。我通过上传全尺寸图片解决了这个问题,并在最终上传后调整大小(使用
copy或move_uploaded_file) -
为什么要静态初始化每个文件的上传器?你不应该!使用this guide 并更正您的代码。
标签: php codeigniter image-uploading