php - 如何使用 codeigniter 上传多张图片并显示相关图片

标签 php mysql codeigniter

我想上传多张图片并显示相关图片,但我收到一个错误,您没有选择要上传的任何文件 我的查看页面是这样的

<div class="form-group col-md-12">
          <label class="form-group col-md-3" for="exampleInputEmail1">Image</label> 

              <div class="form-group col-md-6">
              <input type="file" class="" id="image" name="image[]">
            </div>
      </div>

我的 Controller 看起来像这样......

public function add_images()
{
 $data['active_mn']='add_images';
if($_POST)
{

  $this->form_validation->set_rules('title','title','required');
  $this->form_validation->set_rules('parentname','parent category','required');
  $this->form_validation->set_rules('subname','sub category','required');
  $this->form_validation->set_rules('code','code','required');
  $this->form_validation->set_rules('description','Description','required');
  $this->form_validation->set_rules('size','Size','required');      

  if($this->form_validation->run()==true)
  {
    if($this->do_upload())
    {
      $stat=$this->roxmodel->add_images($this->upload->file_name);
      if($stat)
      {
        $data=array();
        $colors=array_filter($this->session->userdata('colors'));
        /*creating a multidiemensional array to batch insert*/
        foreach ($colors as $color) 
        {
          $new_array=array('product_id'=>$stat,'color'=>$color);
          array_push($data, $new_array);
        }

        $product=$this->roxmodel->add_product_color($data);
        $this->session->unset_userdata('colors');
        $this->session->set_flashdata('message', 'Gallery added Successfully.');
        redirect('admin_control/view_images');

      }
      else
        {
          $this->session->set_flashdata('message', 'Insertion Failed.');
          redirect('admin_control/add_images');
        }
        //redirect('admin_control/view_images');
    }


  }

}

$data['parent']=$this->roxmodel->get_parentcategory();
$this->load->view('add_images',$data);

我上传的路径是这样的..

function image_upload()

{

$name_array=array(); 
$count = count($_FILES['image']['size']);
foreach($_FILES as $key => $value)
{
for ($s = 0; $s < $count; $s++)
  {
  $config['upload_path'] = './images/';
  $config['allowed_types'] = 'gif|jpg|png';
  $config['max_size'] = '5000';
  $config['max_width'] = '4000';
  $config['max_height'] = '6500';
  $config['file_name'] ='img'.time();
  $this->load->library('upload', $config);
  if(! $this->upload->do_upload("image"))
  {
    $this->session->set_flashdata('message',$this->upload->display_errors());
    return false;
  }
  else
  {
      $config['image_library'] = 'gd2';
      $config['source_image'] = './images/'.$this->upload->file_name;
      $config['create_thumb'] = TRUE;
      $config['maintain_ratio'] = TRUE;
      $config['width'] = 540;
      $config['height'] = 660;
      $config['new_image'] = './images/thumb/';

$this->load->library('image_lib', $config);

if(! $this->image_lib->resize())
    {
      $this->session->set_flashdata('message',$this->image_lib->display_errors());
      return false;
    }
    else
    {
      return true;
    }
  }
}


}

最佳答案

尝试这样上传多张图片.. 请在您的表单中添加enctype='multipart/form-data'

$name_array=array(); 
$count = count($_FILES['image']['size']);
foreach($_FILES as $key => $value)
{
    for ($s = 0; $s < $count; $s++)
    {
$_FILES['userfile']['name'] = $value['name'][$s];
        $_FILES['userfile']['type'] = $value['type'][$s];
        $_FILES['userfile']['tmp_name'] = $value['tmp_name'][$s];
        $_FILES['userfile']['error'] = $value['error'][$s];
        $_FILES['userfile']['size'] = $value['size'][$s];
        $config['upload_path'] = "uploads/item_images/itemimage/original/";//your imagepath here
        $config['allowed_types'] = 'gif|jpg|png';
        $config['max_size'] = '8000';
        $config['max_width'] = '10240';
        $config['max_height'] = '7680';
        $this->load->library('upload', $config);
        if ($this->upload->do_upload("image"))
        {
            $data = $this->upload->data();
          if ($this->image_moo->errors)
            {
                print $this->upload->display_errors();
            }
            else
            {
                $name_array[] = $data['file_name'];

            }  } }

关于php - 如何使用 codeigniter 上传多张图片并显示相关图片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35622580/

相关文章:

javascript - 上传 PHP 时图像到达服务器时为 0 字节

mysql - Laravel - 更新表上的值

php - 将 MIkrotik 日期时间转换为 Mysql 日期时间

mysql - Codeigniter 迁移 + 多个表 + 每个表一个迁移文件

jquery - Blueimp jQuery 文件上传插件与 Codeigniter 一步一步?

javascript - JQuery Ajax 错误 {"readyState":0 ,"responseText" :"" ,"status":0 ,"statusText" :"OK"}

php - 将 PHP 数组转换为用户对象?

php - 如何从多维数组中删除重复项和原始数组?

php - PDO/mysql UPDATE 查询不执行任何操作或显示错误

php - 在apache服务器上通过php执行bash文件