【问题标题】:update profile in laravel API for mobile apps更新 laravel API 中的移动应用程序配置文件
【发布时间】:2020-05-26 15:17:30
【问题描述】:

我想为移动应用构建一个 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->头像放入我的项目存储中,并以url形式展示(我的项目已经上传到服务器了)

【问题讨论】:

  • 您应该使用其他服务来存储图像并获取链接。例如服务AWS S3aws.amazon.com/s3

标签: laravel edit profile


【解决方案1】:

在 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',
]);

更多信息,这些是文档链接。

File Storage

Validation

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-16
    • 2022-01-07
    • 1970-01-01
    • 2019-12-19
    • 2012-12-31
    • 2018-09-11
    相关资源
    最近更新 更多