PHP Uploadprogress扩展函数始终返回null,没有上载数据

PHP Uploadprogress扩展函数始终返回null,没有上载数据,php,zend-framework,file-upload,Php,Zend Framework,File Upload,我正在使用带有uploadprogress扩展的PHP5.3.2在使用zend framework进行上传时获得一个progressbar。甚至zend提供的演示也不起作用。zend示例中的代码- if (isset($_GET['uploadId'])) { set_include_path(realpath(dirname(__FILE__) . '/../../../library') . PATH_SEPARATOR . get_include_path

我正在使用带有uploadprogress扩展的PHP5.3.2在使用zend framework进行上传时获得一个progressbar。甚至zend提供的演示也不起作用。zend示例中的代码-

if (isset($_GET['uploadId'])) {
set_include_path(realpath(dirname(__FILE__) . '/../../../library')
                 . PATH_SEPARATOR . get_include_path());

require_once 'Zend/ProgressBar.php';
require_once 'Zend/ProgressBar/Adapter/JsPull.php';
require_once 'Zend/Session/Namespace.php';

$data          = uploadprogress_get_info($_GET['uploadId']);
$bytesTotal    = ($data === null ? 0 : $data['bytes_total']);
$bytesUploaded = ($data === null ? 0 : $data['bytes_uploaded']);

$adapter     = new Zend_ProgressBar_Adapter_JsPull();
$progressBar = new Zend_ProgressBar($adapter, 0, $bytesTotal, 'uploadProgress');

if ($bytesTotal === $bytesUploaded) {
    $progressBar->finish();
} else {
    $progressBar->update($bytesUploaded);
}
}

uploadprogress\u get\u info始终返回null。我认为我的代码有问题,所以我下载了可用的工作示例,但即使在uploadprogress\u get\u info中也始终返回null

我的上传进度配置值

已启用上载进度支持

版本1.0.1

uploadprogress.file.contents\u模板/tmp/upload\u contents\u%s

uploadprogress.file.filename_模板/tmp/upt_uu%s.txt

uploadprogress.get_内容1


在谷歌搜索时,我发现uploadprogress扩展在Suhosin补丁<0.9.26上有一些问题,但我使用的是Suhosin补丁0.9.9.1

你在本地测试吗?我是说在本地主机上测试这个?尝试上载到远程主机,或测试一个相当大的文件(请确保在之前跳过
upload\u max\u filesize
post\u max\u size

在谷歌搜索时,我发现uploadprogress扩展在Suhosin补丁<0.9.26时有一些问题,但我使用的是Suhosin补丁0.9.9.1

我和苏霍辛的版本一样,也有这个问题。还尝试了apc_fetch(),suhosin也破坏了它


多么愚蠢的补丁。要删除它,我必须重建php。看在上帝的份上

虽然我使用Zend_File_Transfer_Adapter来处理上传,但我也遇到了同样的问题。它很有用,因为您也可以验证上载的文件:)

至少在服务器配置方面,有两种有用的方法可以帮助您:

Zend_File_Transfer_Adapter_Http::isApcAvailable();
Zend_File_Transfer_Adapter_Http::isUploadProgressAvailable();
  • 运行phpinfo检查是否安装了UploadProgress,以及服务器上的tmp目录是否可写。意思是“uploadprogress.file.filename\u模板”指的是phpinfo中的右侧tmp文件夹

  • 您可以运行以下代码来检查uploadprogress是否可写


    我使用firefox throttle插件在局域网上的另一台计算机上进行本地测试,以模拟低速。上传会发生并且需要时间来完成。