php codeigniter上传类

时间:2011-01-07 13:05:29

标签: php codeigniter

这将是朦胧的...我已经建立了一个crud系统来管理数据库中的“商品”,在创建表单和更新表单上都有上传字段。

当用户进行编辑时,我显示了图像,但如果他们想要上传新图像,则表单字段会在更新表单中提供,以便在提交更新时上传新图像

棘手的部分是,如果他们不想$ this-> upload-> do_upload()将转出错误,说明没有指定图像

为了解决这个问题,我添加了if(!empty($ _ POST ['userfile'])),如果指定了图像,则只使用上传类,但是当表单提交时,它似乎一直是空的,直到它到达上传类函数调用..继承人一些代码

$userfile = $this->input->post('userfile');//i have tried $_POST as well


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

                    $data['offer'] = $this->moffers->get_offer($this->input->post('id'));
                    $this->load->view('admin/admin_header');
                    $this->load->view('admin/edit',$data);
                    $this->load->view('admin/admin_footer');
                }   

关于解决问题的任何想法?当我取出empty()条件时,上传字段工作正常,但如果用户没有指定要上传的文件,他们可能并不总是想要这样做,则无法正常工作

<tr>
        <td>Upload a new image</td>
        <td><input type="file" name="userfile" size="40" /></td>
    </tr>

2 个答案:

答案 0 :(得分:2)

这样做:

    if(isset($_FILES['userfile']['tmp_name']) && !empty($_FILES['userfile']['tmp_name'])):
        if ( ! $this->upload->do_upload())
            {
                $error = array('error' => $this->upload->display_errors());
                echo $this->upload->display_errors();

                $data['offer'] = $this->moffers->get_offer($this->input->post('id'));
                $this->load->view('admin/admin_header');
                $this->load->view('admin/edit',$data);
                $this->load->view('admin/admin_footer');
            }
    endif;

这就是我在我的一个codeigniter项目中做到的。

我还创建了一个codeigniter上传助手,总是很有用;) - &gt; http://blog.cmstutorials.org/freebees/codeigniter-free-upload-helper

答案 1 :(得分:0)

试试这个:

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


                    $data['offer'] = $this->moffers->get_offer($this->input->post('id'));
                    $this->load->view('admin/admin_header');
                    $this->load->view('admin/edit',$data);
                    $this->load->view('admin/admin_footer');