我正在使用Laravel 5和MongoDB构建一个Restful API。
我正在为用户保存头像图片。
它工作正常,但我正在尝试为每个用户创建一个文件夹。例如:"app/players/images/USERID"
我尝试以不同的方式执行类似的操作,但是我始终不支持Driver []。
\Storage::disk('players'.$user->id)->put($image_name, \File::get($image));
上传图片:
public function uploadImage(Request $request)
{
$token = $request->header('Authorization');
$jwtAuth = new \JwtAuth();
$user = $jwtAuth->checkToken($token, true);
$image = $request->file('file0');
$validate = \Validator::make($request->all(), [
'file0' => 'required|image|mimes:jpg,jpeg,png'
]);
if ( !$image || $validate->fails() )
{
$data = array(
'code' => 400,
'status' => 'error',
'message' => 'Image uploading error-'
);
}
else
{
$image_name = time().$image->getClientOriginalName();
\Storage::disk('players')->put($image_name, \File::get($image));
$user_update = User::where('_id', $user->id)->update(['imagen' => $image_name]);
$data = array(
'code' => 200,
'status' => 'success',
'user' => $user->id,
'imagen' => $image_name
);
}
return response()->json($data, $data['code']);
}
filesystems.php:
'players' => [
'driver' => 'local',
'root' => storage_path('app/players/images/'),
'url' => env('APP_URL').'/storage',
'visibility' => 'public',
],
我希望用户头像图像保存在User ID文件夹中。
答案 0 :(得分:0)
该磁盘调用告诉Laravel
使用哪个文件系统,假设您有一个ID为1的用户,并且您的代码将访问文件系统playeers1。
通常要做的是将这些文件放在不同用户的文件夹结构中,因此您可以这样做。这会将您的图片文件放在文件夹1中。
\Storage::disk('players')->put($user->id . '/' . $image_name, \File::get($image));
答案 1 :(得分:0)
我遇到了类似的问题,请检查这些行是否可以更改您想要实现的目标。
\Storage::disk('players')->put("{$user->id}/{$image_name}", \File::get($image));
我依靠laravel指南:File Storage - File Uploads
我希望它能对您有所帮助。亲切的问候。