Как загрузить изображение, используя ajax и codeigniter, не сбрасывая форму? - PullRequest
0 голосов
/ 13 февраля 2019

Я просто хотел загрузить изображение, используя ajax и codeigniter.Получение сообщения об ошибке «Вы не выбрали файл для загрузки».даже я выбрал это изображение.

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

Это мой взгляд:

<div class="col-lg-6">
   <div class="dropify-wrapper mb-4 form-group col-lg-6">
       <div class="dropify-loader"></div>
        <div class="dropify-errors-container">
        <ul></ul>
        </div>
        <input class="dropify" name="userfile" id="input-file-now" type="file">
        <button class="dropify-clear" type="button">Remove</button>
        <div class="dropify-preview">
        <span class="dropify-render"></span>
        <div class="dropify-infos">
        <div class="dropify-infos-inner">
        <p class="dropify-filename"><span class="file-icon"></span>
        <span class="dropify-filename-inner"></span></p>
        <p class="dropify-infos-message">Drag and drop or click to replace</p>
        </div>
        </div>
        </div>
      </div>
    </div>

Это код ajax:

$('#submit_btn').click(function (e) {
   e.preventDefault();
   var data = $('#formname').serialize();

   $.ajax({
      type: 'ajax',
      method: 'post',
      url: '<?php echo base_url() ?>ControllerName/functionName',
      data: data,
      enctype: 'multipart/form-data',
      async: false,
      dataType: 'json',

      success: function (response) {
         alert(response);
      },

      error: function () {

      }
   });
});

Это код контроллера:

public function functionName()
{
    $config=[
      'upload_path'=>'./Assets/imgs/users/',
      'allowed_types'=>'jpg|png|gif' 
    ];       
    $this->load->library('upload',$config);
    if($this->upload->do_upload(')){
        $data=$this->upload->data();
        $image_path= base_url("Assets/imgs/users/".$data['raw_name'].$data['file_ext']);
        $result= $image_path;
    }else{
        $result=$this->upload->display_errors('','');
    }
}

1 Ответ

0 голосов
/ 13 февраля 2019

Пожалуйста, добавьте тег в ваш HTML, а также используйте форм-данные в коде jquery, как показано ниже.

Код HTML:

<form id="form" method="post" enctype="multipart/form-data">
</form>

Код Jquery:

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