Я попытался загрузить изображение с помощью Почтальона, и изображение хранится в предпочтительном каталоге, а полный путь хранится в базе данных, но я получаю сообщение об ошибке
«message»: «Вызов расширения функции-члена () в строке»,
вот мой код
public function store(AvatarUploadRequest $request, UserService $userService) {
$user = $request->user();
try {
$file = $request->file('avatar');
$file = url("/avatars") . "/" . $user->uuid . ".jpg";
$destinationPath = "avatars";
$user->avatar = $request->file('avatar')->move($destinationPath, $file)
->getClientOriginalExtension();
$user->avatar = $file;
$user->save();
$userService->updateAvatar($user, $file);
}
catch (\Exception $e) {
return jsonApiResponse([
'avatar' => $e->getMessage(),
], 422);
}
return jsonApiResponseWithData($user, 201);
}
Удалите эту строку (кажется, вы не используете ее в любом случае):
->getClientOriginalExtension();
Так что это должно работать:
public function store(AvatarUploadRequest $request, UserService $userService) {
$user = $request->user();
try {
$file = $request->file('avatar');
$file = url("/avatars") . "/" . $user->uuid . ".jpg";
$destinationPath = "avatars";
$user->avatar = $request->file('avatar')->move($destinationPath, $file);
$user->avatar = $file;
$user->save();
$userService->updateAvatar($user, $file);
} catch (\Exception $e) {
return jsonApiResponse([
'avatar' => $e->getMessage(),
], 422);
}
return jsonApiResponseWithData($user, 201);
}
Других решений пока нет …