Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何删除CGI显示的临时文件(图像)?_Python_Image_Cgi - Fatal编程技术网

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

Python 如何删除CGI显示的临时文件(图像)?,python,image,cgi,Python,Image,Cgi,我已经编写了一个python CGI脚本,它将文件转换为.jpgs并在一个简单的HTML页面中显示它们。我不想用这些.jpg文件把文件夹弄得乱七八糟,所以我使用tempfile.NamedTemporaryFile创建了一个文件来存储转换后的.jpg输出。一切都很好,但我想在页面显示后删除此文件。目前我设置了delete=False,但我似乎无法删除文件而不导致img链接中断。您无法从cgi脚本中删除文件。因为html页面只有在脚本完成运行后才会发送给用户。然后用户浏览器解析html并获取jpg

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

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

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

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