обновить профиль в laravel API для мобильных приложений - PullRequest
0 голосов
/ 11 февраля 2020

Я хочу создать 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 (мой проект уже загружен на сервер)

1 Ответ

0 голосов
/ 11 февраля 2020

Самый простой способ хранения файлов в 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, чтобы создать ярлык хранилища в каталоге publi c.

по соображениям безопасности вы можете использовать валидатор для хранения только файлов изображений. в этом примере я ограничил файл всеми типами изображений с максимальным размером 4 МБ

$request->validate([
    'avatar' => 'required|image|max:4096',
]);

для получения дополнительной информации это ссылки на документы.

Хранение файлов

Проверка

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...