使用codeigniter进行多个文件上传

时间:2011-08-23 04:13:39

标签: php codeigniter file-upload

我再次需要一些帮助 我正在使用codeigniter创建一个多文件上传功能,而我却坚持使用“多个”部分 以下代码适用于上传单个图像,它基本上将常规尺寸的图像上传到文件夹,并将同一图像的缩略图版本上传到另一个文件夹。
2个文件夹的2个图像,请参阅我的代码:

$config['upload_path'] = './cars/large_thumb/';
$config['allowed_types'] = 'gif|jpg|png';
$config['max_size'] = '2000';
$config['file_name'] = $newfilename;
$this->load->library('upload', $config);
$this->upload->initialize($config);
$uploadimages = $this->upload->do_upload();
$image_data = $this->upload->data();

$configlarge = array(
    'source_image' => $image_data['full_path'],
    'new_image' => './cars/large_thumb',
    'maintain_ratio' => true,
    'quality' => 70,
    'width' => 600,
    'height' => 450
);
$this->load->library('image_lib', $configlarge);
$this->image_lib->initialize($configlarge);
$resizelarge = $this->image_lib->resize();

$configsmall = array(
    'source_image' => $image_data['full_path'],
    'new_image' => './cars/small_thumb',
    'maintain_ratio' => true,
    'width' => 100,
    'height' => 75
);
$this->load->library('image_lib', $configsmall);
$this->image_lib->initialize($configsmall);
$resizesmall = $this->image_lib->resize();

我需要帮助的是应该在上传图像时多次运行此代码的循环 我尝试使用类似的东西进行“foreach”循环:

foreach ($_FILES["userfile"]["error"] as $key => $error)  {
    code above here...
  }  

它给了我这个错误:消息:数组到字符串转换
我也尝试了一个“for”循环,我在其中遍历代码并且它有点工作,但它上传最后一个图像的次数与上传图像一样多。

希望有人可以与我分享一些知识。

由于

1 个答案:

答案 0 :(得分:1)

  

我还尝试了一个“for”循环,在其中迭代代码并且它有点工作,但它上传最后一个图像的次数与上传图像一样多。

看起来您试图使用for循环解决问题,因为您对HTML表单的命名约定不正确,因此该循环只会被破坏。

尝试以下内容:

    <form action="upload.php" method="post" enctype="multipart/form-data">
    <input type="file" name="car_1" value="" />
    <input type="file" name="car_2" value="" />
    <input type="file" name="car_3" value="" />
    </form>

然后在您的代码中,您可以更改

    $uploadimages = $this->upload->do_upload(); 

    $uploadimages = $this->upload->do_upload('car_1'); 

你应该能够把它封装在一个循环中,通过你正在使用的for循环来浏览你想要上传的每个图像