2017-06-19 3 views
1

Ich versuche, Dateien mit Ajax und Laravel hochladen, jedes Mal, wenn ich versuche, eine hochgeladen wird leer zurückgegeben. Dies ist die Methode in Laravel:Laravel: Senden von Dateien über Ajax

public function save_vehicles(Request $request){ 
    $files=$request->file('input_file_vehicles'); 
    return response()->json(['File: '.$files]); 
    \Log::info($files); 
} 

Und dies ist die Ajax-Funktion:

var save_vehicles=function(input_file){ 
    var formData = new FormData(); 
    formData.append("input_file_vehicles",input_file); 
    return $.ajax({ 
     type: 'GET', 
     dataType: 'json', 
     processData: false, 
     contentType: false, 
     data: formData, 
     url: '/save/vehicles' 
    }); 
} 

Das Ergebnis aus diesem Aufruf ist:

"Datei:"

Es wird leer zurückgegeben.

+0

bitte posten Sie Ihre Form als auch – btl

+2

input_file_vehicles! = Input_file_vehicle (Sie „input_file_vehicles“ über AJAX zu senden, aber erwarten „input_file_vehicle“ in Ihrer Laravel Datei) –

+0

Ursprünglich input_file_vehiculo ist, aber ich änderte es vor hier veröffentlichen. –

Antwort

1

jquery Code

var save_vehicles=function(input_file){ 
    var formData = new FormData($('#formElem')); 
    return $.ajax({ 
     type: 'POST', 
     dataType: 'json', 
     processData: false, 
     contentType: false, 
    headers: { 
     'X-CSRF-TOKEN': '{{ csrf_token() }}' 
    }, 
     data: formData, 
     url: '/save/vehicles' 
    }); 
} 

Laravel-Code

$destinationPath = 'path/th/save/file/'; 
$image = $request->file('input_file_vehicles'); 
$name = $image->getClientOriginalName(); 
$extension = $image->getClientOriginalExtension(); 
$file_name = $name; 
$image->move($destinationPath,$file_name); 
-2

Ihre Form wie dieses input_file_vehicles

<form action="/" name="myForm" id="myForm" method="post" enctype='multipart/form-data'> 
</form> 
+1

Dies spielt keine Rolle, wenn Sie AJAX verwenden. In der Tat brauchen Sie nicht einmal einen Formularwrapper. – Ohgodwhy

0

Sie sind Anfügen aussehen sollte aber versuchen, input_file_vehicle in der Controller-Methode zuzugreifen.

+0

Sorry, ursprünglich ist input_file_vehiculo, aber ich habe es vor dem Posten hier geändert. Das ist nicht der eigentliche Fehler, danke für die Antwort. –