簡體   English   中英

如何在Codeigniter中更新圖像?

[英]How to update image in codeigniter?

我創建的圖片上傳效果很好,但我也希望對其進行更新。 當我添加需要的圖像時,它會正確更新,但是如果我不想更改圖像並將其保持原樣,則無法檢索我的當前圖像。我只想有時更新我的​​factory_name(field name)。 當我更新映像時,它已成功更新,但是當我更新factory_name時,僅現有映像丟失了。 請幫我怎么做?

這是我的查看文件

            <form action="<?php echo base_url('login/insert_factory/'.$id); ?>" method="POST" enctype="multipart/form-data">
 <?php
           $id =$this->uri->segment(3);
           if($id == "")
            {
            ?>  
            <div class="form-group">
                <label class="form-label" for="field-1">Factory Name</label>
                <!--span class="desc">e.g. "Beautiful Mind"</span-->
                <div class="controls">
                <input type="text" name="factory_name" class="form-control" >
                </div>
            </div>
             <?php

                }
                else
               { ?> 
           <div class="form-group">
                <label class="form-label" for="field-1">Factory Name</label>
                <!--span class="desc">e.g. "Beautiful Mind"</span-->
                <div class="controls">
                    <input type="text" name="factory_name" value="<?php echo $result->factory_name; ?>" class="form-control" >
                </div>
            </div>
            <?php } ?>

           <?php
                            if($id == "")
                            {
                            ?>  

            <div class="form-group">
                <label class="form-label" for="field-1">Upload Logo</label>
                <!--span class="desc">e.g. "Beautiful Mind"</span-->
                <div class="controls">
                     <input type="file"  name="upload_logo" />
                </div>
            </div>
            <?php

                }
                else
               { ?> 
           <div class="form-group">
                <label class="form-label" for="field-1">Upload Logo</label>
                <!--span class="desc">e.g. "Beautiful Mind"</span-->
                <div class="controls">
                     <input type="file"  name="upload_logo" value="<?php echo $result->factory_logo; ?>" />
                </div>
            </div>
           <?php } ?>
           <?php
                            if($id == "")
                            {
                            ?>  
            <div class="form-group">
                <div class="controls">
            <input type="submit" class="btn btn-primary" value="submit" />        

                </div>
            </div>
            <?php

                }
                else
               { ?> 
           <div class="form-group">
                <div class="controls">
            <input type="submit" class="btn btn-primary" value="Update"  />        

                </div>
            </div>
             <?php } ?>
            </form>

這是我的控制器代碼:

 public function insert_factory()
     { 
        $id =$this->uri->segment(3);

        if($id == "")
        {
        if(isset($_FILES['upload_logo'])){

              $errors= array();
              $file_name = $_FILES['upload_logo']['name'];
              $file_tmp =$_FILES['upload_logo']['tmp_name'];

              if(empty($errors)==true){
                 move_uploaded_file($file_tmp,"assets/uploads/".$file_name);

                // echo "Success";
              }else{
                 print_r($errors);
              }

                $fields = array(
                   'factory_name' => $this->input->post('factory_name',True),
                   'factory_logo' => $file_name
                );

                $result = $this->login_model->insert_factory($fields);

                if($result){
                    $this->session->set_flashdata('success_msg',' Factory Created Successfully!');
                    redirect('login/view_factory');
                }else{
                    $this->session->set_flashdata('error_msg','Factory Cannot Created.!');
                    redirect('login/create_factory');
                }
            } 
        }else{

            if(isset($_FILES['upload_logo'])){

              $errors= array();
              $file_name = $_FILES['upload_logo']['name'];
              $file_tmp =$_FILES['upload_logo']['tmp_name'];

              if(empty($errors)==true){
                 move_uploaded_file($file_tmp,"assets/uploads/".$file_name);

                // echo "Success";
              }else{
                 print_r($errors);
              }

                $fields = array(
                   'factory_name' => $this->input->post('factory_name',True),
                   'factory_logo' => $file_name
                );

                $this->db->where('factory_id', $id);
                $this->db->update('create_factory', $fields);
                if($this->db->affected_rows()>0)
                {
                    $this->session->set_flashdata('success_msg',' Factory Updated Successfully!');
                }else{
                    $this->session->set_flashdata('error_msg','Factory Cannot Updated.!');
                    redirect('login/create_factory');
                }
                redirect(base_url('login/view_factory'));
        } 

        }
     }

這是我的模型文件:

    public function insert_factory($fields)
        {
            $this->db->insert('create_factory',$fields);
            return ($this->db->affected_rows() != 1) ? false : true;
        }

在控制器中,在if和else塊中,請修改現有代碼,以在未提供圖像且僅提供工廠名稱時不更新空圖像。

if和else塊中的這段代碼:

$fields = array(
    'factory_name' => $this->input->post('factory_name',True),
    'factory_logo' => $file_name
);

需要更改為:

$fields['factory_name'] = $this->input->post('factory_name', True);

if (!empty($file_name)) {
    $fields['factory_logo'] = $file_name;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM