Не могу отправить файл в Laravel, используя ajax - PullRequest
0 голосов
/ 27 января 2019

Я пытаюсь отправить файл на мой контроллер с помощью вызова ajax.Я прошел через много ответов, и я придумал этот код.

 $('#btn_stock_create').on('click',function(){
    var create_stock_type = $('#create_stock_type').val();
    var create_tag_no = $('#create_tag_no').val();
    var formData = new FormData();
    formData.append("file", $("#create_image")[0].files[0]);
    $.ajax({                    
        url: '/stocks/create',
        type: 'POST',     
        data: {
             _token: CSRF_TOKEN,
             create_stock_type:create_stock_type,
             create_tag_no:create_tag_no,
             create_image:formData,
        },
        processData: false,
        contentType: false,
        cache: false,
        dataType: 'json',                   
        success: function (data) { 
           if (data.result == 1) {
                table.ajax.reload();
                swal({
                    title: data.status,
                    text:  data.message,   
                    icon:   "success",
                });
                $('#createModal').modal('hide');
                $('#createModal').find('form').trigger('reset');
            }
        }
    }); 
});

Моя форма находится внутри начальной загрузки.Моя форма приведена ниже:

   <form id="create_stock_form" class="form-horizontal" enctype="multipart/form-data">
       <div class="form-group">
         .... (Rest of the inputs)
      </div>
      <div class="form-group">
         <div class="row">
            <div class="col-md-4">
              <label for="create_image" class="col-md-12 control-label" >Stock Image</label>
              <div class="col-md-12">
               <input type="file" class="form-control-file" id="create_image">
              </div>
            </div>
          </div>
      </div>
  </form>

Поэтому, когда ajax называется Handler, отображается исключение.

C: .. \ vendor \ laravel \ framework \ src \ Illuminate \ Foundation \ Exceptions\ Handler.php.

Может кто-нибудь сказать, пожалуйста, почему это происходит.Я просто не могу отправить файл на контроллер с помощью моей функции AJAX.Или есть какое-то другое решение для этого.Пожалуйста, помогите мне.

1 Ответ

0 голосов
/ 28 января 2019

Я надеюсь, что эта помощь

добавить атрибут ввода на ваш вход

<input type="file" class="form-control-file" id="create_image" accept="image/*>

Ajax отправить запрос

$('#btn_stock_create').on('click',function(){
   var formData = new FormData($('#create_stock_form').find('#create_image')[0]);
 $.ajax({                    
    url: '/stocks/create',
    type: 'POST',     
    headers: { 'X-CSRF-TOKEN': '{{ csrf_token() }}' },
    data: formData,
    processData: false,
    contentType: false,
    cache: false,
    dataType: 'json',                   
    success: function (data) { 
       if (data.result == 1) {
            table.ajax.reload();
            swal({
                title: data.status,
                text:  data.message,   
                icon:   "success",
            });
            $('#createModal').modal('hide');
            $('#createModal').find('form').trigger('reset');
        }
    }
  }); 
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...