Как удалить файл после его загрузки с помощью Response-> download () в Laravel

Я создал файл CSV с помощью fputcsv (), а затем возвращаю загруженный файл с контроллера. Он успешно загружается через браузер, но я также хочу удалить файл после его загрузки.

//controller class
public function downloadCSV{
...
    return response()->download($filePath, $fileName, $headers);
}

Как я могу вызвать функцию удаления.

//controller class
csvService->deleteCSV($fileName);

//csvService class
public function deleteCSV($filename) {
    if (File::exists(storage_path($filename))) {
          File::delete(storage_path($filename));
    }
}

Я пробовал следующее. Файл не загружается, но успешно удален.

public function downloadCSV(...)
    ...
    response()->download($filePath, $fileName, $headers);

    return $csvService->deleteCSV($fileName);
}

вам нужно использовать очереди: laravel.com/docs/5.6/queues

Hussein 19.04.2018 23:46
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Laravel Scout - это популярный пакет, который предоставляет простой и удобный способ добавить полнотекстовый поиск в ваше приложение Laravel. Он...
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
4
1
1 384
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Воспользуйтесь методом deleteFileAfterSend:

return response()->download($filePath, $fileName, $headers)->deleteFileAfterSend(true);

Загрузка файла и ответы

//controller class
public function downloadAndDeleteCSV{
    ...
    return response()->download($filePath, $fileName, $headers)->deleteFileAfterSend(true);
}

Другие вопросы по теме