【问题标题】:How to keep previous uploaded image after submitting a form without selecting a new image to be uploaded in codeigniter提交表单后如何保留以前上传的图像而不选择要在codeigniter中上传的新图像
【发布时间】:2017-04-13 10:25:16
【问题描述】:

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

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

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

控制器代码

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 编码

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

【问题讨论】:

  • Stackoverflow 社区不欢迎 find-error-in-my-code-d 问题。
  • 只做一件事:取一个隐藏变量并将您以前的图像名称保存到其中并检查文件是否未上传,然后使用该隐藏变量值。希望有帮助!!!

标签: php jquery mysql image codeigniter


【解决方案1】:

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

只需将if 添加到您的 php 代码中:

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

【讨论】:

    猜你喜欢
    • 2015-06-11
    • 1970-01-01
    • 1970-01-01
    • 2015-09-08
    • 2012-12-22
    • 2013-04-21
    • 1970-01-01
    • 2015-12-04
    • 1970-01-01
    相关资源
    最近更新 更多