这将是朦胧的...我已经建立了一个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>
答案 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');