Изображение Codeigniter не загружается - PullRequest
0 голосов
/ 02 ноября 2018

Я пытаюсь отредактировать загрузку изображения в мою базу данных. Однако поле изображения не получает значение и выходит, что поле равно нулю.

вид:

            <?php foreach($blog as $b){?>
                <form method="post" action="<?php echo site_url('adminUpdatePost/'.$b->id); ?>" class="col s12">     
                    <div class="row">
                        <div class="input-field col s12">
                            <textarea id="textarea1" name="textarea1" class="materialize-textarea"><?=$b->post?></textarea>
                            <label for="textarea1">Post</label>
                        </div>
                    </div>

                    <div class="file-field input-field">
                       <div class="btn">
                            <span>Post Image</span>
                            <input type="file" name="file">
                        </div>
                        <div class="file-path-wrapper">
                            <input id="image" name="image" class="file-path validate" placeholder="<?=$b->image?>" type="text">
                      </div>
                    </div>

                    <input type="submit" value="Submit">                    
                </form>
                <?php } ?>

контроллер:

public function updatePost($id)
{
    $config = array(
        'upload_path' => 'uploads/',
        'allowed_types' => 'gif|jpg|jpeg|png',
        'max_size' => 0,
        'filename' => url_title($this->input->post('file')),
        'encrypt_name' => false,
    );

    $this->load->library('upload', $config);
    $this->upload->do_upload('file');

    $post=array(         
        'post'=>$this->input->post('textarea1'), 
        'image'=>$this->upload->file_name,           //image 
    ); 

    ChromePhp::log("edit data : " . json_encode($post));

    $result = $this->AdminModel->updatePost($post, $id);    
}

При проверке содержимого массива $ post с использованием ChromePhp в 'изображении' отображается нулевое значение. Но у «поста» есть ценности.

Я не могу найти, где я ошибся. Где я ошибся?

Ответы [ 3 ]

0 голосов
/ 02 ноября 2018

Вы должны указать тип "enctype =" multipart / form-data "" в форме tage

<form method="post" action="<?php echo site_url('adminUpdatePost/'.$b->id); ?>" class="col s12" enctype="multipart/form-data">  
0 голосов
/ 02 ноября 2018

Для загрузки изображения / файла вам необходимо добавить атрибут enctype в тег формы

так и должно быть

<form method="post" action="<?php echo site_url('adminUpdatePost/'.$b->id); ?>" class="col s12" enctype="multipart/form-data>
  <div class="row">
      <div class="input-field col s12">
          <textarea id="textarea1" name="textarea1" class="materialize-textarea"><?=$b->post?></textarea>
          <label for="textarea1">Post</label>
      </div>
  </div>

  <div class="file-field input-field">
     <div class="btn">
          <span>Post Image</span>
          <input type="file" name="file">
      </div>
      <div class="file-path-wrapper">
          <input id="image" name="image" class="file-path validate" placeholder="<?=$b->image?>" type="text">
    </div>
  </div>

  <input type="submit" value="Submit">  
</form>
0 голосов
/ 02 ноября 2018

Пожалуйста, используйте это

 if ( ! $this->upload->do_upload('file'))
                {
                      echo "<pre>";print_r($this->upload->display_errors());die();

                }
                else
                {
                     echo "nothing wrong";
                }

и покажи мне результат. Если это не поможет, попробуйте изменить

 <input type="file" name="file">

в

и изменить $this->upload->do_upload('file') на $this->upload->do_upload('userfile')

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...