2011-01-07 46 views
1

这将是朦胧的......我已经建立了一个crud系统来管理“提供”数据库与创建窗体和更新窗体上的上传字段。php codeigniter上传类

当用户进入编辑我有图像显示,但如果他们想上传一个新的表单字段是否有更新的形式,当他们提交更新

棘手的部分上传新的图片

如果他们不想$ 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'); 
       } 

关于解决什么问题的任何想法?上传现场工作正常,当我取出空()的条件,但不会工作,如果用户犯规指定要上传的文件,他们可能不总是想做

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

回答

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项目中做到的。

我还创建了一个笨上传帮手,可总是有用的) - >http://blog.cmstutorials.org/freebees/codeigniter-free-upload-helper

+0

perfec,欢呼声,约TMP名 – 2011-01-07 13:28:28

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');