使用Zend实现文件上载进度

3 php zend-framework

嗨我试图用Zend实现上传进度但是我还没有找到任何详细的教程.指针会很有用.

谢谢.

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,但可能会让您知道发生了什么;-)


顺便说一句,你可能想要在本地机器上测试所有这些,这更容易开发......这意味着文件上传真的很快 ; 测试任何类型的进度上传指标都不太好...

关于这一点,您可能会对"减慢"本地网络接口感兴趣; 那些可能有帮助:


希望这有助于至少一点;-)

而且,当你在它的时候:你为什么不把你的发现写成某种好的和详细的教程?这可能对某些人有用;-)