我们同时上传的还有昵称,图片是保存在resource表里面,,
对应在userProfile有关联id;利用laravel自带上传很方便,,
但是不能直接访问,,所以需要建立软链接:
1
|
PHP artisan storage:link
|
执行该条命令会在public里面生成存储图片的文件夹,就可以通过地址访问了
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
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实现一个上传图片的接口,并建立软链接,访问图片的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/cfun_goodmorning/article/details/78870803