Pas*_*TIN 12
我不记得曾经看过一个完全详细的教程,解释如何使用Zend Framework获取上传进度条; 但是这里有一些指示,如果你已经知道关于PHP,文件上传和Zend Framework的东西,那么应该引导你一点......
首先,您需要安装以下两个PHP扩展中的一个:
这意味着只有当您是服务器的管理员时才能获得这种进度条(默认情况下通常不会安装这类扩展 - 而不是共享主机)
然后,您必须在上传表单中使用一些特殊的"隐藏"字段; 关于这一点,你可以看一下APC的配置选项 ; 特别是与RFC 1867相关的那些.
如果您使用的是Zend Framework,我想您已经Zend_Form_Element_File
在表单中使用了一些.它应该已经对这些领域做了必要的事情 - 你最好检查一下,确定,顺便说一句.
现在你的表单没问题了,你最后可以看一下Zend_ProgressBar
,在文档章节中描述了文件上传的进度
您的代码可能看起来有点像这样(引用文档):
$adapter = new Zend_ProgressBar_Adapter_Console();
$upload = Zend_File_Transfer_Adapter_Http::getProgress($adapter);
$upload = null;
while (!$upload['done']) {
$upload = Zend_File_Transfer_Adapter_Http:getProgress($upload);
}
Run Code Online (Sandbox Code Playgroud)
而且,要定期获取该信息,您必须使用某种Ajax请求从网页进行一些轮询.
关于uploadprogress扩展,您可以查看以下文章:
这些帖子并不专门针对Zend Framework,但可能会让您知道发生了什么;-)
顺便说一句,你可能想要在本地机器上测试所有这些,这更容易开发......这意味着文件上传真的很快 ; 测试任何类型的进度上传指标都不太好...
关于这一点,您可能会对"减慢"本地网络接口感兴趣; 那些可能有帮助:
希望这有助于至少一点;-)
而且,当你在它的时候:你为什么不把你的发现写成某种好的和详细的教程?这可能对某些人有用;-)