en primer lugar, trato de cargar el archivo a través de ajax, cuando intento dd($request->all()) en mi controlador, da como resultado una empty array
public function uploadFile(Request $request){ dd($request->all()); }Mi hoja de vista con ajax
<label for="inputfile"> <a title="Click here to upload record "><i class="fa fa-upload"></i></a> </label> <input id="inputfile" name="inputfile" type="file" /> <script> $('#inputfile').on('change',function(ev){ ev.preventDefault(); var postData=new FormData(); postData.append('file',this.files[0]); $.ajax({ url:'{{url('reporting/uploadFile')}}', headers:{'X-CSRF-Token':$('meta[name=csrf_token]').attr('content')}, type:"get", contentType:false, data:postData, processData:false, dataType:'json', success: function( data ) { console.log(data) }, error: function() { alert('error'); } }); }); </script>Mi versión de laravel es 5.8. El flujo es cuando el usuario carga un archivo adjunto, se almacenará directamente en el almacenamiento de archivos sin hacer clic en el botón Enviar. Pero cuando trato de recuperar $request->all(), devuelve una matriz vacía, que es que no puedo continuar con el paso siguiente. Lo siento si mi explicación no es clara.
Sí, está bien, laravel puede ser un verdadero dolor a veces, especialmente cuando se trata de cargar archivos.
Puedes probar este artículo para laravel 5.8, pruébalo y hazme saber si funciona.
https://www.w3adda.com/blog/laravel-5-8-jquery-ajax-form-submit
Creo que la principal diferencia con este artículo es la forma en que establece los datos en la llamada ajax. Sin embargo, es posible que deba revisar todo el artículo y compararlo con su código.
$.ajax({ url: "{{ url('jquery-ajax-form-submit')}}", method: 'post', data: $('#contact_us').serialize(),Asegúrese de que está utilizando correctamente la configuración de varias partes del formulario. Este suele ser el problema en la mayoría de los casos.
<form action="upload.php" method="post" enctype="multipart/form-data"> let files = $('#inputfile'); let image = files[0].files; let form_data = new FormData(); if (image.length > 0) { for (let i = 0; i < image.length; i++) form_data.append('inputfile[]', image[i]); } $.ajax({ url:'{{url('reporting/uploadFile')}}', headers:{'X-CSRF-Token':$('meta[name=csrf_token]').attr('content')}, type:"get", contentType:false, data:form_data, processData:false, dataType:'json', success: function( data ) { console.log(data) }, error: function() { alert('error'); } }); });prueba esto.