Php Laravel:通过Ajax发送文件
我尝试使用Ajax和Laravel上传文件,每次我尝试上传一个文件时,它都返回空文件。这是Laravel中的方法:Php Laravel:通过Ajax发送文件,php,ajax,laravel,Php,Ajax,Laravel,我尝试使用Ajax和Laravel上传文件,每次我尝试上传一个文件时,它都返回空文件。这是Laravel中的方法: public function save_vehicles(Request $request){ $files=$request->file('input_file_vehicles'); return response()->json(['File: '.$files]); \Log::info($files); } 这是Ajax函数: va
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'
});
}
此调用的结果是:
“文件:”
它返回空。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'
});
}
拉威尔码
$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);
您的表单应该如下所示
<form action="/" name="myForm" id="myForm" method="post" enctype='multipart/form-data'>
</form>
您正在添加输入文件车辆
,但试图在控制器方法中访问输入文件车辆
。请将您的表单和输入文件车辆一起发布!=input_file_vehicle(您正在通过AJAX发送“input_file_vehicle”,但您的Laravel文件中应包含“input_file_vehicle”)最初是input_file_vehicle,但我在这里发布之前对其进行了更改。使用浏览器开发工具检查您是否正在发送该文件input@GabrielAlejandro真的变量名不翻译没关系:)对不起,原来是输入文件,但我在这里发布之前更改了它。这不是真正的错误,谢谢你的回答。这在使用AJAX时并不重要。事实上,您甚至不需要表单包装器。