Старый аватар не удален при загрузке новогоPhp

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Старый аватар не удален при загрузке нового

Сообщение Anonymous »

Я использую Laravel Ext для обработки обновлений профиля, и я добавил функциональность, чтобы пользователи могли обновить свой аватар. Все работает нормально, но проблема в том, что когда пользователь загружает новый аватар, старый не удален из файловой системы. / и используйте PHP Artisan Storage: ссылка, чтобы сделать их доступными. Вот мой метод обновления: < /p>

Код: Выделить всё

public function update(ProfileUpdateRequest $request): RedirectResponse
{
$request->user()->fill($request->validated());

if ($request->user()->isDirty('email')) {
$request->user()->email_verified_at = null;
}

if ($request->hasFile('avatar')) {
// Attempt to delete the old avatar
Storage::disk('public')->delete('avatars/' . $request->user()->avatar);

$file = $request->file('avatar');
$fileName = Str::uuid() . '.' . $file->getClientOriginalExtension();
$file->storeAs('avatars', $fileName, 'public');

$request->user()->avatar = $fileName;
}

$request->user()->save();

return Redirect::route('profile.edit');
}

Однако после загрузки нового аватара старый аватар остается в хранилище/приложении/публике/аватаре/каталоге вместо удаления.
Что я пробовал: < /p>

проверил это хранилище :: disk ('public')-> delete ('avatars /'. $ Request-> user ( )-> avatar); запускается до сохранения нового файла.
подтвердил, что файл существует в хранилище/App/public/avatars/перед удалением.
отладки с DD (Storage :: Disk ('public')-> exists ('avatars/'. $ request-> user ()-> avatar)); перед вызовом удаления.
подтвердил, что $ request-> hasfile (' avatar ') возвращает true < /code>, поэтому условие выполняется.
удалено все из функции и тестируемое только удаление: < /p>
< /blockquote>
dd(Storage::disk('public')->delete('avatars/' . $request->user()->avatar));
< /code>
В этом случае аватар был успешно удален, что делает эту проблему еще более незначительной. < /p>
Вопросы:
Почему не Старый аватар, который удаляется в полной функции?
Может ли быть причина, по которой хранилище :: lelete () работает изолированно, но не при использовании перед хранением нового файла?
Как я могу убедиться, что старый аватар Правильно удалено до сохранения нового?
Любое понимание будет высоко оценено! < /p>

Подробнее здесь: https://stackoverflow.com/questions/794 ... -a-new-one
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Php»