0

データベースに画像をアップロードして挿入できます。しかし、複数の画像をアップロードできません。複数の画像をアップロードするには、以下のコードで何を変更する必要がありますか?

私のform.php

<?php echo form_open_multipart('admin/addproduct'); ?> 
        <table border="0" cellspacing="0" cellpadding="0" style="width:60%;"> 
            <tr>
                <td style="vertical-align: top;width:50%;text-align: right;"> Product name </td>
                <td style="vertical-align: top;width:50%;"><?php echo form_input($fpname) ?>  </td>
            </tr>  
            <tr>
                <td style="vertical-align: top;width:50%;text-align: right;"> Price </td>
                <td style="vertical-align: top;width:50%;"><?php echo form_input($fprice) ?>  </td>
            </tr> 
            <tr>
                <td style="vertical-align: top;width:50%;text-align: right;"> Image 1: </td>
                <td style="vertical-align: top;width:50%;"><?php echo form_upload("userfile"); ?></td>
            </tr>
             <tr>
                <td style="vertical-align: top;width:50%;text-align: right;"> Image 2: </td>
                <td style="vertical-align: top;width:50%;"><?php echo form_upload("img2"); ?>    </td>
            </tr>
             <tr>
                <td style="vertical-align: top;width:50%;text-align: right;">Image 3:  </td>
                <td style="vertical-align: top;width:50%;"><?php echo form_upload("img3"); ?>    </td>
            </tr>
             <tr>
                <td style="vertical-align: top;width:50%;text-align: right;"> Details </td>
                <td style="vertical-align: top;width:50%;"><?php echo form_textarea($fdetails) ?>  </td>
            </tr> 
            <tr>
                <td style="vertical-align: top;width:50%;text-align: center" colspan="2">
                    <input type="submit" value="Submit"/>
                </td> 
            </tr> 
        </table>  
      <?php echo form_close(); ?>  

controller.php

      function addproduct() {
        $config['upload_path'] = './uploads/';
        $config['allowed_types'] = 'gif|jpg|png';
        $config['max_size'] = '1879800';
        $config['max_width'] = '1024';
        $config['max_height'] = '2768';
  $config['encrypt_name'] = TRUE;
        $this->load->library('upload', $config);
        $this->load->library('form_validation');
        $this->form_validation->set_error_delimiters('<li>', '</li>')->set_rules('pname', 'Product Name', 'trim|min_length[4]|required|max_length[112]');
        $this->form_validation->set_error_delimiters('<li>', '</li>')->set_rules('details', 'Details', 'trim|min_length[4]|required|max_length[12]');
        $this->form_validation->set_error_delimiters('<li>', '</li>')->set_rules('price', 'Price', 'trim|min_length[4]|required|max_length[112]|numeric');

        if (!$this->form_validation->run()) {//--false
            $data = $this->productmodel->productdetails();
            $this->load->view('admin/home', $data);
        }

        if (!$this->upload->do_upload()) {  // no file uploaded or failed upload
            $error = array('error' => $this->upload->display_errors());
            $data = $this->productmodel->productdetails();
            print_r($error);
            $this->load->view('admin/home', $data);
        } 
        else 
        {  
            $data =$this->upload->data();
            $this->productmodel->entry_insert_productdetails($data["file_name"]); 
            $data = $this->productmodel->productdetails();
              $this->session->set_flashdata('msg', 'One record added successfully...'); 
              redirect(base_url().'index.php/admin/index');
        }
    }

更新:フォームから生成されたソースコード

 <form action="http://localhost/wclick/index.php/admin/addproduct" method="post" accept-charset="utf-8" enctype="multipart/form-data"> 
        <table border="0" cellspacing="0" cellpadding="0" style="width:60%;"> 
            <tr>
                <td style="vertical-align: top;width:50%;text-align: right;"> Product name </td>
                <td style="vertical-align: top;width:50%;"><input type="text" name="pname" value="" maxlength="190" size="20"  />  </td>
            </tr>  
            <tr>
                <td style="vertical-align: top;width:50%;text-align: right;"> Price </td>
                <td style="vertical-align: top;width:50%;"><input type="text" name="price" value="" maxlength="20" size="20" placeholder=" " id="txtsubject"  />  </td>
            </tr> 
            <tr>
                <td style="vertical-align: top;width:50%;text-align: right;"> Image 1: </td>
                <td style="vertical-align: top;width:50%;"><input type="file" name="userfile" value=""  /></td>
            </tr>
             <tr>
                <td style="vertical-align: top;width:50%;text-align: right;"> Image 2: </td>
                <td style="vertical-align: top;width:50%;"><input type="file" name="img2" value=""  />    </td>
            </tr>
             <tr>
                <td style="vertical-align: top;width:50%;text-align: right;">Image 3:  </td>
                <td style="vertical-align: top;width:50%;"><input type="file" name="img3" value=""  />    </td>
            </tr>
             <tr>
                <td style="vertical-align: top;width:50%;text-align: right;"> Details </td>
                <td style="vertical-align: top;width:50%;"><textarea name="details" cols="20" rows="4" ></textarea>  </td>
            </tr> 
            <tr>
                <td style="vertical-align: top;width:50%;text-align: center" colspan="2">
                    <input type="submit" value="Submit"/>
                </td> 
            </tr> 
        </table>  
      </form>
4

3 に答える 3

0

次のリンクが参考になるかもしれませんので、参照してください。

CodeIgniter 2.0 を使用した複数ファイルのアップロード (配列)

http://ellislab.com/forums/viewthread/234635/#1051511

于 2013-10-11T12:19:52.430 に答える