在codeigniter中上传照片无法按预期工作

时间:2013-01-07 11:24:32

标签: php codeigniter

无法上传照片。 PHP给出错误您没有选择要上载的文件。视图中的代码如下

 <?php echo form_open_multipart('upload/do_upload_member_photo');?>
                                    <div class="tab_content" id="tab2" style="display: none;">
                                      <input type="file" id="file1" name="file1" style="">
                                      <a href="#" onclick="openFileOption();return;"> <div class="one">Upload Photo / Video</div></a>
                                       <a href="#">   <div class="two">Create Photo Album</div></a>
                                       <textarea name="post" placeholder="What's on your mind?" style="margin: 0px; width: 437px; height: 39px; border:1px solid #999"></textarea>
                                       <button type="submit" class="post_button" style="float:right; color:#fff">Post</button>
                                        </div>
                                 </form> 

<script>
function openFileOption()
{
document.getElementById("file1").click();
}
</script>
Controller中的

代码是

function do_upload_member_photo()
    {       
        $this->load->helper(array('form', 'url'));

        $config['upload_path'] = './uploads/';
        $config['allowed_types'] = 'gif|jpg|png';
        $config['max_size'] = '2000';
        $config['width']  = '150';
        $config['height']  = '150';
        $config['maintain_ration'] =TRUE;
        $config['overwrite']=TRUE;
        $config['file_name'] = $_FILES['file1']['name'][0];;

        if(!file_exists('./uploads/' . $this->session->userdata('user_id')))
        {
            mkdir('./uploads/' . $this->session->userdata('user_id'), 0777);
        }

        $config['upload_path'] = './uploads/'.$this->session->userdata('user_id');

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

        if ( ! $this->upload->do_upload())
        {
            $error = array('error' => $this->upload->display_errors());

            print_r($error);
        }
        else
        {
            $data = array('upload_data' => $this->upload->data());
        }
    }

1 个答案:

答案 0 :(得分:2)

$this->upload->do_upload()此功能默认搜索名称为userfile的文件输入 但是您的文件输入名称是file

因此您需要将其更改为userfile或将文件输入名称作为参数传递给上传函数$this->upload->do_upload('file1')

参考:File Upload Library

相关问题