为什么 Perl 中的取消链接会在显示文件之前删除文件,尽管我调用的方式与之后不同

问题描述 投票:0回答:1

图像文件在显示后删除,而不是之前删除。

我使用Perl的文件上传来上传文件。上传工作正常,这是预期的上传目录。在同一个脚本中,我显示该文件(它是一个图像文件)并且也可以正常工作。我想要做的是在显示文件后将其删除,但是当我这样做时,我会得到一个损坏的链接,并且图像(当然)会从目录中删除。中间试过睡眠功能没用。

print "<img src=\"path_to\image\">
#sleep (5);
unlink "path\to\image\";
perl unlink
1个回答
0
投票

当您

print
网页并将其发送到客户端时,可能需要几秒钟的时间,特别是如果您在链接后发送更多内容的话。但是您的代码只是删除了该文件,因此当浏览器呈现页面并尝试显示图像时,它已经消失了。

您的

sleep
也会减慢页面渲染速度,因此这不会真正帮助您,它只会使整个页面加载速度变慢。

这里真正的解决方案是使用另一种机制来清理此类图像文件,例如,在午夜删除所有文件,或者每小时检查一次并删除x分钟前创建的每个文件。

© www.soinside.com 2019 - 2024. All rights reserved.