1

我有一个将图像发送到 php 脚本的 ajax 图像上传器,以便它们被验证/调整大小并保存到一个目录中。ajax 上传器允许同时上传多个文件。由于它允许多个文件可能会超时,所以我想到了使用 set_time_limit 增加执行时间。但我无法确定我必须设置多少时间,因为默认值为 30 秒。1分钟够吗?图像在我的本地计算机上正确上传,但我认为共享托管服务会出现超时错误。任何关于其他人如何实施的想法和想法都是有价值的。谢谢。

4

1 回答 1

1

如果需要,您可以将其设置为 5 分钟。但出于显而易见的原因,您并不想让它特别高,尤其是对于 http 调用。

所以......如果我有精力,这就是我会做的......

我需要:

process_initializer.php

process_checker.php

客户端.html

the_process.php(作为后台运行)

...

客户端将文件上传到 process_initializer。

初始化程序创建一个唯一 ID,可能基于毫秒或其他一些高级解决方案的时间

初始化程序启动一个后台进程,向它发送必要的参数,如文件名和 ID

初始化程序以 ID 响应客户端

客户端然后轮询 process_checker 以查看 ID 发生了什么(可能是 20 秒间隔 - setTimeout() 等)

process_checker 可能会检查文件 output_ID.txt 是否存在,该文件在完成后应该创建,然后如果它不存在,则响应客户端它尚未准备好,如果是,则可能将输出发送到客户端,然后发送到客户端可以做任何事情。


当 apache 运行 php 时,它使用一个 php.ini 配置,当您从命令行或从另一个脚本运行 php 时,exec('php the_process arg1 arg2')它将为此使用不同的 php.ini,称为 php cli 或类似的东西,除非您有 php cli 配置为使用与 apache 相同的 php.ini。重要的是,它们可能使用不同的设置,因此您可以让 cli 脚本比您的 http 调用脚本花费更多时间。

于 2013-11-26T05:03:04.787 回答