如何删除CGI显示的临时文件(图像)?

时间:2009-04-17 06:37:23

标签: python image cgi

我编写了一个python CGI脚本,将文件转换为.jpgs并将其显示在一个简单的HTML页面中。我不想用这些.jpg文件弄乱文件夹,所以我使用tempfile.NamedTemporaryFile来创建一个文件来存储转换后的.jpg输出。一切都很好,但我想在页面显示后删除此文件。目前我有delete = False set,但我似乎无法删除文件而不会导致img链接损坏。

1 个答案:

答案 0 :(得分:3)

您无法从cgi脚本中删除该文件。因为只有在脚本运行完毕后才会将html页面发送给用户。然后用户浏览器解析html并获取jpg文件。

最简单的选择是将临时文件写入子目录并定期清理该目录(仅在最后几分钟内存在)。有很多方法可以改进这个过程,但它们可能毫无意义。

更高级的选项(根据您的场景,也可能毫无意义)是配置Web服务器以在“get jpg”请求上运行脚本。然后你可以通过你的脚本流式传输jpg。这样你就会知道什么时候获取jpg。在这个脚本中,您可以异步调用下标来删除jpg文件。