从服务器的角度,如何测量在PHP中上传文件(从浏览器到服务器)的时间


how to measure time to upload a file (from browser to server) in php from the server point of view?

php是否提供api来检查多部分/表单数据上传速率或总持续时间?

我还想知道PHP是如何知道来自IIS和PHP .ini设置的各种超时事件的?

$_SERVER中有一个值,您可以查看请求是何时发起的。来自PHP手册:

"REQUEST_TIME"请求开始的时间戳。从PHP 5.1.0开始提供。自PHP 5.4.0以来,它是微秒浮点数。

因此,您可以将$_SERVER ['REQUEST_TIME']与当前时间()进行比较,前提是在PHP 5.4普及之前,您只能将分辨率限制为1秒。

我不这么认为-上传是完成的时间PHP可以做任何事情,即apache得到上传,然后,当完成时,它交给PHP -你的脚本甚至不会在那之前运行,所以除非有一种方法来获得这些信息回顾性我不认为你可以从PHP单独得到它。

获取这些数据的通常方法是客户端使用flash或javascript或两者。例如,uploadify或swfupload都是很棒的flash上传程序,它们为用户提供客户端文件大小限制和上传进度指示。

如果文件上传、进度指示和文件大小限制可以由浏览器自己完成,那就容易多了:(

参考:

http://www.uploadify.com/demos/

http://swfupload.org/

对于第一个问题,我相信您可以使用$_SERVER['REQUEST_TIME']变量与time()一起自己进行计算。