做imagemagick转换时避免闪存上传30秒超时?

时间:2012-01-21 01:30:54

标签: php flash imagemagick

我有一个使用flash上​​传程序(swfuploader)的Web应用程序,最近用户向我们指出了当脚本挂起超过30秒时发生的错误。

我知道flash文档提到30秒没有响应会超时,所以我知道我需要在转换功能结束之前将一些数据发送到浏览器。

截至目前,脚本上传文件,将其转换,如果是多页pdf,它会将引用子项png保存到db,这对大小文件工作正常,问题发生在30页后它会挂起超过30秒。

提前致谢

2 个答案:

答案 0 :(得分:2)

Mark Robbins提出的建议,或者您可能正在寻找此http://php.net/manual/en/function.set-time-limit.php,但您还需要检查服务器设置(它们也可能限制允许脚本运行的时间)。

让PHP异步工作将是一项非常重要的任务......我不是说这将是一个完美的解决方案,但是,它是最容易实现的(至少在我看来):你可以启动它将“转换”作为一个单独的进程,获取它的pid并将该pid保存在您知道与客户端关联的会话/其他位置,然后让客户端轮询服务器以请求完成工作。一旦与pid关联的进程退出,客户端将需要接收保存到imagemagic转换的目录中的内容。

答案 1 :(得分:1)

我认为你应该把整个事情构建为异步,然后你不必担心这个......对吗?