Не удается удалить файл с помощью ‘Storage ::delete’

#php #laravel

#php #laravel

Вопрос:

Я не могу удалить файл с помощью функции laravel Storage::delete .

Мой код хранилища изображений :

 $logoPath = $request->file('logo')->store('images','public');
  

Он хранит изображение в

 storage/app/public/images/0HHJ5DygYUXuLC5dgu14KJTPvCEaxhISV8tpb4Pq.png
  

Я использую Storage::delete('/images/0HHJ5DygYUXuLC5dgu14KJTPvCEaxhISV8tpb4Pq.png'); для его удаления. Но это не работает;

То, что я пробовал, это:

 Storage::delete(asset('storage/images/0HHJ5DygYUXuLC5dgu14KJTPvCEaxhISV8tpb4Pq.png'));

Storage::delete(storage_path('images/0HHJ5DygYUXuLC5dgu14KJTPvCEaxhISV8tpb4Pq.png'));`
  

Даже я пытаюсь удалить какую-то картинку из общей папки. Это не работает.

 Storage::delete(public_path('images/logo3.png'));
  

Я сделал что-то не так?

Комментарии:

1. В ваших журналах ошибок что-нибудь отображается? Возможно, проблема с разрешениями. Вы уверены, что файл существует по этому пути?

2. Что за ошибка отображается?

3. Я бы попробовал Storage::disk('public')->delete($logoPath) или Storage::delete($logoPath) ?

Ответ №1:

это то, что работает для меня, надеюсь, это сработает и для вас:

 Storage::delete('public/images/0HHJ5DygYUXuLC5dgu14KJTPvCEaxhISV8tpb4Pq.png');
  

Комментарии:

1. не беспокойся, чувак! Сначала у меня были некоторые проблемы с этим, не мог определить, какой путь ему нужен

Ответ №2:

Метод delete принимает единственное имя файла для удаления с диска:

 Storage::delete('public/images/filename.png');
  

Ответ №3:

Это php-способ удаления файла. функция unlink().

 $file = $request->input('filename');
unlink(storage_path('app/public/images/' . $file));