我们同时上传的还有昵称,图片是保存在resource表里面,,
对应在userProfile有关联id;利用laravel自带上传很方便,,
但是不能直接访问,,所以需要建立软链接:
代码语言:javascript复制PHP artisan storage:link
执行该条命令会在public里面生成存储图片的文件夹,就可以通过地址访问了
代码语言:javascript复制public function uploadAvatar(Request $request)
{
$validator = Validator::make($request- all(), [
'nickname' = 'required|string|max:8',
'avatar' = 'required',
]);
if ($validator- fails()) {
return $this- responseForJson(ERR_ACCESS_DENID, $validator- errors());
}
$user_id=Auth::id();
$avatar = $request- file('avatar')- store('/public/'.date('Y-m-d').'/avatars');
$avatar = Storage::url($avatar);
$resource=Resource::insertGetId(['type'= 1,'resource'= $avatar]);
$Data=['user_id'= $user_id,'avatar'= $resource,'nickname'= $request- nickname];
try {
$edit = UserProfile::where('user_id',$user_id)- update($Data);
if ($edit) {
return $this- responseForJson(ERR_OK, 'upload success');
}
return $this- responseForJson(ERR_CREATE, 'upload fail');
}catch (Exception $exception) {
return $this- responseForJson(ERR_ACCESS_DENID, $exception- getMessage());
}
}
以上这篇laravel实现一个上传图片的接口,并建立软链接,访问图片的方法就是小编分享给大家的全部内容了,希望能给大家一个参考。