【已解决】怎么在大文件下载完成后执行一些操作 response()->file

muvtou

问题描述

return response()->file(public_path() . '/ceshi.zip')

怎么在大文件下载完成后删除生成的临时文件ceshi.zip

-------------------解决方案---------------------------------
目前除了定时任务和队列暂没有其他解决方案

343 2 0
2个回答

nitron

说具体问题,不要过于宽泛,从return response的那一刻起,服务器的逻辑处理就算结束了

  • muvtou 2023-11-06

    嗯,问题删除生成的临时文件ceshi.zip

  • tanhongbin 2023-11-06

    可以在返回前端之前把这个加入延迟队列 然后自义定时间后删除,也可能把不留的的文件保存到 指定目录下 ,然后定时轮询删除超过自定义时间的文件

  • muvtou 2023-11-06

    嗯,这样是可以解决,感觉就是没这么直接

  • tanhongbin 2023-11-07

    要不然没啥好办法

muyu

使用中间件,把需要删除的文件放到上下文里面,中间件删除后在响应

  • muvtou 2023-11-07

    测试了 中间 在返回 数据的时候 就执行完了,完成下载后也不会再次执行的

🔝