mi problema es al publicar múltiples formularios con ajax en laravel, estoy enviando los datos del formulario sin ningún problema, pero no puedo enviar el archivo. El archivo está vacío error. He estado lidiando con esto durante 2 días, no hay método que no haya probado, por favor ayúdenme. Aparte de eso, agregué varias partes al formulario, pero aún así no funcionó, estoy compartiendo mis códigos con ustedes.
Perdón por mi mal ingles.
Quiero que cargue 2 fotos en la cuarta forma normal hasta la forma createProduct3, traté de obtenerlas haciendo el nuevo formData() normal e intenté de otra manera y no pude tener éxito. Lo envía al lado del servidor de Laravel como [Archivo de objeto]. mi formulario
<form class="form" id="createProduct4" method="POST" action=""> <input type="file" class="upload-box-title" id="urun-fotografi" name="urun_fotografi" value="Fotoğraf Seç"> <input type="file" class="upload-box-title" id="urun-dosyasi" name="urun_dosyasi" value="Dosya Seç"> </form>Mi espada ajax:
function createProducts() { var dataString = $("#createProduct1, #createProduct2, #createProduct3, #createProduct4").serialize(); let photo = document.getElementById("urun-dosyasi").files[0]; let photo2 = document.getElementById("urun-fotografi").files[0]; console.log(photo,photo2); $.ajax({ url: "{{ route('user.product.create') }}", type: "POST", data: dataString+"&urun_dosyasi="+photo+"&urun_fotografi="+photo2, success: function( data ) { }, error: function(xhr) { console.log(xhr); } }); }Función del servidor
public function createProduct(Request $request) { $file = $request->file('urun_dosyasi'); $file2 = $request->file('urun_fotografi'); $filename = $file->getClientOriginalName(); $extension = $file->getClientOriginalExtension(); $filename2 = $file2->getClientOriginalName(); $extension2 = $file2->getClientOriginalExtension(); echo $filename,$extension."2. doc: ".$filename2.$extension; }Use multipart/form-data cuando su formulario incluya cualquier elemento <input type="file"> :
<form ... enctype="multipart/form-data">Ajax:
var form = $('#createProduct4')[0]; var data = new FormData(form); $.ajax({ url: "{{ route('user.product.create') }}", type: "POST", enctype: 'multipart/form-data', data: data, processData: false, contentType: false, success: function (data) { console.log("SUCCESS : ", data); }, error: function (e) { console.log("ERROR : ", e); } });