我是Laravel的新手,我认为我正在以正确的方式编码,但它没有工作,数据响应是成功的,但照片没有正确上传而没有进入数据库
在我的刀片中
<form role="form" method="POST" action="" enctype="multipart/form-data">
{{ csrf_field() }}
<div class="profile-user-photo">
<div class="profile-user-photo-wrap">
<div class="profile-user-photo-wrap-circle">
<img src="{{ assets_url('img/profile/profile_user_photo_default.png') }}" alt="" class="profile-user-img">
</div>
<label for="profile-user-photo-file" class="profile-user-photo-file-label">
<div class="profile-user-photo-add">+</div>
</label>
<input type="file" style="width:10px;" name="photo" accept="image/*" class="profile-user-photo-file" id="profile-user-photo-file">
</div>
</div>
</form>
在javascript中
if( $('#profile-user-photo-file').length != 0 ){
$('#profile-user-photo-file').change( function(){
$.post('{{ route('add-photo') }}',
{
photo: $('input[file="photo"]').val()
}
).done(function(data){
$("#msg").html(data.message);
}).fail(function(data){
$("#msg").html(data.responseJSON.message);
});
})
}
在我的控制器中
public function addPhoto(User $user, Request $request)
{
try {
$user = User::findOrFail(Sentinel::getUser()->id);
} catch (ModelNotFoundException $e) {
return response()->json(['message' => 'User Not Found'], 422);
}
dd($request->file('photo'));
$file_to_deletes = [];
$this->validate($request, [
'photo' => 'image',
]);
if ($request->file('photo')) {
$file_to_deletes[] = $user->photo;
$user->photo = $this->uploadAFile($request->file('photo'), User::IMAGE_PATH);
}
if (!$user->update($request->only(['photo']))) {
return response()->json(['message' => 'Something wrong with database'], 422);
}
Storage::delete($file_to_deletes);
return response()->json(['success' => 1, 'message' => 'Update Photo Success']);
}