Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在laravel API中更新移动应用程序的配置文件_Laravel_Edit_Profile - Fatal编程技术网

在laravel API中更新移动应用程序的配置文件

在laravel API中更新移动应用程序的配置文件,laravel,edit,profile,Laravel,Edit,Profile,我想为移动应用程序构建一个api。现在,我想创建一个编辑配置文件api。但如果用户想要上传他们的头像,我不知道如何存储图像。 这是我的密码: public function profileedit($id, Request $request){ $users = user::find($id); $users->name = $request->firstName; $users->thumbnail = $request->avata

我想为移动应用程序构建一个api。现在,我想创建一个编辑配置文件api。但如果用户想要上传他们的头像,我不知道如何存储图像。 这是我的密码:

public function profileedit($id, Request $request){
      $users = user::find($id);
      $users->name = $request->firstName;
      $users->thumbnail = $request->avatar;
      $users->save();

      $data[] = [
        'id'=>$users->uid,
        'name'=>$users->name,
        'avatar'=>$users->thumbnail,
        'status'=>200,
      ];
      return response()->json($data);

    }

如何将$request->avatar放入我的项目存储中,并以url形式显示它(我的项目已上载到服务器上)

在Laravel中存储文件最简单的方法是这样

use Illuminate\Support\Facades\Storage;

public function profileedit($id, Request $request){

  //validator place

  $users = user::find($id);
  $users->name = $request->firstName;
  $users->thumbnail = $request->avatar->store('avatars','public');
  $users->save();

  $data[] = [
    'id'=>$users->uid,
    'name'=>$users->name,
    'avatar'=>Storage::url($users->thumbnail),
    'status'=>200,
  ];
  return response()->json($data);

}
但您可能知道,应该运行
php artisan storage:link
命令在公共目录中生成存储快捷方式

出于安全原因,您可以使用验证器仅允许图像文件存储。在本例中,我将文件限制为最大4MB大小的所有图像类型

$request->validate([
    'avatar' => 'required|image|max:4096',
]);
有关更多信息,请参阅文档链接


您应该使用其他服务来存储图像并获取链接。例如服务
AWS S3