Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/22.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
Php 在网页上存储文件的持续时间_Php_Python_Temporary Files - Fatal编程技术网

Php 在网页上存储文件的持续时间

Php 在网页上存储文件的持续时间,php,python,temporary-files,Php,Python,Temporary Files,我需要设置一个页面,让用户上传文件,用脚本修改文件,然后将文件返回给用户 我有上传和修改部分下来,但我不知道把文件放在哪里。他们将在1或2mb的面积,我有我的网络托管计划很少的空间,所以我想尽快摆脱文件。没有理由让这些文件存在的时间超过用户在被重定向时可以通过浏览器下载的时间 使用cron作业检查文件的创建时间并在文件达到一定年龄时将其删除,这是实现此目的的唯一方法吗 我正在使用python和PHP 编辑: 首先上传文件。然后将文件的位置发送回用户。页面上的javascript重定向到文件路径。

我需要设置一个页面,让用户上传文件,用脚本修改文件,然后将文件返回给用户

我有上传和修改部分下来,但我不知道把文件放在哪里。他们将在1或2mb的面积,我有我的网络托管计划很少的空间,所以我想尽快摆脱文件。没有理由让这些文件存在的时间超过用户在被重定向时可以通过浏览器下载的时间

使用cron作业检查文件的创建时间并在文件达到一定年龄时将其删除,这是实现此目的的唯一方法吗

我正在使用python和PHP

编辑:


首先上传文件。然后将文件的位置发送回用户。页面上的javascript重定向到文件路径。浏览器将打开“保存文件”对话框,并选择保存文件或取消。如果他们取消,我想立即删除该文件。如果他们选择保存文件,我希望在下载完成后删除该文件。

首先想到的是在JavaScript中设置一个超时,并向服务器脚本发送一个AJAX请求以删除该文件。
我还将处理用户离开或关闭页面的情况(在IE的onBeforeUnload事件中)


编辑:这要求您更改下载文件的方式。请参见示例。

通常,您必须设置策略。对于任何上载的文件,策略为
,生存时间为5分钟

Kniganapolke的解决方案很好,可能是最便宜、最容易实现的。如果您不喜欢保留实际文件所在位置的信息(在服务器中,您不能将其公开给外部世界),则需要将其记录在数据库中

但有另一种解决方案,从长远来看更好

排队。对当用户关闭Firefox时,必须考虑CRON作业。我们真的想编写一些javascript来检查用户是否正在关闭Firefox吗?我不知道怎么做,因为我不是一个javascript的家伙。可能不太容易。但我们不想处理shell脚本或低级系统命令。用Python来做吗?这意味着不要使用cron作业

策略是,根据需要向队列中抛出尽可能多的内容。将上载添加到队列中,抛出return(显示链接),然后抛出delete策略(检查当前时间是否超过5分钟),如果不超过5分钟,则将相同的策略抛出回队列中

您需要一个任务队列,例如(仅列出我的一个收藏夹)

这些分布式任务队列更适合于web服务,例如上传图片、修改并返回URL。您不希望您的服务被阻塞(如果转换需要1分钟怎么办)?如果设置不正确,您的服务器管理员(比如apache或nginx)可能会在内部超时。你也不要让超时时间太长,否则会带来灾难

使用任务队列,您现在可以扩展web服务。这将使你未来的项目更好

一些阅读资料


我不知道为什么我没有想到它,但我在Python的IRC上讨论一个完全无关的问题,有人问我为什么不提供文件。没错


我从不需要保存文件,只需要将其发送回具有正确头的用户。问题解决了

Python和PHP都可以实现这一点。你想回答哪一个问题?@TheronLuhn,如果你不介意的话,两个都可以。@TheronLuhn,也要看情况而定。如果代码放在处理文件的脚本中,则首选Python,但如果是独立运行的脚本,则首选PHP。无论哪种方式,我都希望两者兼而有之:担心没有回答你真正的问题。我不确定你想要的是否可能。如果是的话,它肯定不容易实现。一旦您将用户传递到下载链接,它就在HTTP服务器(可能是Apache)手中,这是一个完全不同的球类游戏。@TheronLuhn,好的,谢谢您的回答。很抱歉,您编写所有PHP和Python只是为了删除您的答案。我真的很感激:D