我尝试使用Ajax和Laravel上传文件,每次尝试上传文件时都会返回空。这是Laravel中的方法:
public function save_vehicles(Request $request){
$files=$request->file('input_file_vehicles');
return response()->json(['File: '.$files]);
\Log::info($files);
}
这是Ajax函数:
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'
});
}
此次通话的结果是:
"文件:"
它返回空。
答案 0 :(得分:1)
jquery代码
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代码
$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);
答案 1 :(得分:0)
您正在追加input_file_vehicles
但尝试在控制器方法中访问input_file_vehicle
。
答案 2 :(得分:-1)
您的表单应如下所示
<form action="/" name="myForm" id="myForm" method="post" enctype='multipart/form-data'>
</form>