【发布时间】:2020-08-15 05:50:58
【问题描述】:
我有一个表格,我想把它发送到 laravel,它确实有文件。 我尝试了很多方法,但我无法上传照片。 当我尝试获取文件时,它显示为 null。
dd($request->file('file'));
这是我的 js 部分:
function newUser() {
let formData = new FormData();
formData.append('category_id', $("#parentCombo").val());
formData.append('sub_category_id', $("#childrenCombo").val());
formData.append('province_id', $("#provinceCombo").val());
formData.append('city_id', $("#cityCombo").val());
formData.append('area', $("#area").val());
formData.append('price', $("#price").val());
formData.append('phone', $("#phone").val());
formData.append('age', $("#age").val());
formData.append('status', $("#status").val());
formData.append('email', $("#email").val());
formData.append('file', $('#file'));
formData.append('description', $("#description").val());
formData.append('title', $("#title").val());
formData.append('room', $("#room").val());
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
$.post({
url: '{{ url('admin/notices') }}',
data: formData,
processData: false,
contentType: false,
async: true,
success(data) {
if (data['status'] == 201) {
swal({
title: 'با موفقیت انجام شد!',
text: data['message'],
type: 'success',
padding: '2em'
})
}
},
error(err) {
swal({
title: 'عملیات شکست خورد!',
text: err.statusText,
type: 'error',
padding: '2em'
})
console.log(err)
}
})
}
</script>
这是我的 Laravel 控制器:
$notice->picture = $request->file('file') ? $this->storeImage() : null;
$notice->title = $request->get('title');
$notice->description = $request->get('description');
$notice->area = $request->get('area');
$notice->room = $request->get('room');
$notice->price = $request->get('price');
$notice->category_id = $request->get('category_id');
$notice->sub_category_id = $request->get('sub_category_id');
$notice->province_id = $request->get('province_id');
$notice->city_id = $request->get('city_id');
$notice->phone = $request->get('phone') ?? null;
$notice->status = $request->get('status');
$notice->age = $request->get('age');
$notice->user_ip = ip2long($request->ip());
$notice->user_agent = $request->userAgent();
$notice->region = $request->get('region');
$notice->user_id = auth()->user()->id ?? null;
$res = $notice->save();
if($res){
return response([
'status' => 201,
'message' => 'عملیات با موفقیت انجام شد'
]);
}
注意:它适用于通常的 HTTP 请求。我不知道如何发送带有 JQUERY 的文件,以便我可以使用 $request->file('file'); 在 LARAVEL 中获取它
【问题讨论】: