如果用户在文件保存到他的机器上之前停止下载/导出,是否有可能创建一个相当大的(20MB).csv下载会造成内存泄漏?
如果是的话,你会如何抓住并解决这个问题?
答案 0 :(得分:1)
这是可能的,但我想它最终会被清除。无论哪种方式,HTTPds在提供文件方面通常比服务器端语言更有效。
如果您担心,请将文件(我假设我们正在谈论动态生成的文件)保存到文件系统(服务器可以看到的位置)并将用户重定向到该URL。
为了安全(虽然通过默默无闻),使文件名变得有些可怕(例如,他们的用户名的哈希和文件的描述),并确保人们无法获得它所居住的目录列表。可能会使感觉到日期 - 标记文件(例如:filename-year-month-day.ext),这样你就可以在24小时后自动运行一些东西来清理文件。
答案 1 :(得分:1)
如果您正在动态生成文件并将其流式传输给用户,您可能需要查看 http://php.net/manual/en/features.connection-handling.php如果连接中止或超时,则执行一些清理。