如何在提交表单后保留以前上传的图像,而不选择要在codeigniter中上传的新图像

时间:2016-11-29 12:12:20

标签: php jquery mysql image codeigniter

我有一个简单的表单,显示图像库以及标题,图像和日期。我的问题是图像输入。

选择一个新的并提交一切正常但当我没有选择任何图像时,它会在图像字段中保存空白数据。

有没有办法保存表单,图像更改是可选的?

控制器代码

public function submitwedding()
{
    if(isset($_POST['edit']) && $_POST['edit']=='EDIT')
    {

        move_uploaded_file($_FILES['avatar']['tmp_name'],'uploadimg/'.$_FILES['avatar']['name']);

        $data = array('title'=>$_POST['edit1'],'avatar'=>$_FILES['avatar']['name'],'date'=>$_POST['date']);

        $this->Dbfunction->updatedata('wedding',$data,$_POST['id']);

        redirect(base_url().'index.php/admin/wedding');
    }
}

前端编码

<tr>
    <td width="25%" >Title</td>
    <td></td>
    <td width="70%"><input type="text" name="edit1" id="title" style="width:250px"class="form-control" value="<?php echo $row->title ?>"></td>
</tr>
<tr height="10px"></tr>
<tr>
    <td width="25%" >image</td>
    <td></td>
    <td width="70%">
      <input type="file" name="avatar" value="<?php echo $row->avatar;?> "  id="avatar" size="20" /><img src="<?php echo base_url(); ?>uploadimg/<?php echo $row->avatar; ?>"/>
     </td>
</tr>
<tr>
    <td width="25%" >Date</td>
    <td></td>
    <td width="70%"><input type="text" name="date" id="date" style="width:250px"class="form-control" value="<?php echo $row->date ?>"></td>
</tr>

Dbfunction Coding

function selectdatabyid($table , $id)
{
    $query = $this->db->query('select * from '.$table.' where id='.$id);
    return $query->row();
}
function updatedata($table , $data , $id)
{
    $this->db->where('id', $id);
    $this->db->update($table, $data);
}
function deletedata($table, $id)
{
    $this->db->where('id', $id);
    $this->db->delete($table);
}

1 个答案:

答案 0 :(得分:0)

为什么不让image-form-tag的value=""属性为空?当用户提交而未选择要上传的新图片时,请不要更新数据库中的字段。

只需在您的php代码中添加if

if(!empty($_POST['avatar'])) {
    // update avatar because input is not empty
}