PHP Uploadprogress扩展函数总是返回null,没有上传数据
我使用php 5.3.2和uploadprogress扩展来获取使用zend框架上传过程中的进度条。即使是与Zend提供的演示不起作用。在Zend的示例代码 -PHP Uploadprogress扩展函数总是返回null,没有上传数据
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_get_info总是返回null。我认为我的代码有问题,所以我下载了http://labs.liip.ch/uploadprogresssimple/index.php的工作示例,但即使在这种情况下,uploadprogress_get_info也总是返回null。
我的上传进度配置值
上传进度的支持使
版本1.0.1
uploadprogress.file.contents_template的/ tmp/upload_contents_%S
uploadprogress.file.filename_template的/ tmp/upt_%s.txt
uploadprogress.get_contents 1
在谷歌上搜索周围,我发现上传进度延期有一些问题与Suhosin Patch < 0.9.26但我使用了Suhosin补丁0.9.9.1
回答:
你是本地测试呢?我的意思是在localhost上测试这个?尝试上传到远程主机,或者测试一个相当大的文件(确保你之前碰到了upload_max_filesize
和post_max_size
)。
回答:
在谷歌上搜索周围,我发现上传进度扩展与了Suhosin补丁< 0.9.26一些问题,但我使用了Suhosin补丁0.9.9.1
我在同一个版本了Suhosin和有这个问题。也尝试过apc_fetch()suhosin也瘫痪了。
什么是一个愚蠢的补丁。要删除它,我必须重建php。为了f ***的缘故!
回答:
对我来说同样的问题,尽管我使用Zend_File_Transfer_Adapter来处理上传。它很有用,因为你可以验证上传文件(县)太:)
几个有用的方法,可以帮助你至少在你的服务器的配置是:
Zend_File_Transfer_Adapter_Http::isApcAvailable(); Zend_File_Transfer_Adapter_Http::isUploadProgressAvailable();
回答:
运行的phpinfo检查UploadProgress是否已安装,并且tmp目录是否可在服务器上写入。这意味着“uploadprogress.file.filename_template”指的是phpinfo中正确的tmp文件夹。
您可以运行以下代码来检查uploadprogress是否可写。
< div id = " status " style = " border:1px black solid; <?php
$ templateini = ini_get(" uploadprogress.file。filename_template ");
$ testid = " thisisjustatest ";
$ template = sprintf($ templateini,$ testid);
$ templateerror = false;
如果($模板& & $模板!= $ templateini & & @触按($模板)& & file_exists($模板)){
//打印 '('。$ templateini”是可写的。真实路径将是'。str_replace($ testid,"%s ",realpath($ template))。')';
unlink($ template);
}其他{
$ templateerror = TRUE;
}
如果(function_exists(" uploadprogress_get_info ")){
如果($ templateerror){
印刷的背景色:红色; "';
打印" >问题。 ";
if($ template == $ templateini){
print " uploadprogress.file.filename_template($ templateini)在其中没有用于制作唯一临时文件的%s。请调整。 < br/> ";
}其他{
打印" $ templateini不可写。 < br/>请确保该目录存在并可写入Web服务器。 < BR/>
或调整INI设置 'uploadprogress.file.filename_template' 的正确路径。 ";
}
} else {
print'background-color:green; " > uploadprogress扩展程序已安装,并且初始检查显示一切都很好';
}
}其他{
? >
background-color:red; " >未安装uploadprogress扩展。
<?php}? ></DIV >
如果上面的代码提供了错误,指向php.ini文件中正确的tmp目录。在windows localhost机器上的Xampp tmp目录的php.ini文件中添加了以下行。 uploadprogress.file.filename_template = C:\ xampp \ tmp \ some_name_%s.txt
现在运行Zend demo,它应该工作或运行以下命令手动获取var_dump。 var_dump(uploadprogress_get_info($ _GET ['uploadId']));
以上是 PHP Uploadprogress扩展函数总是返回null,没有上传数据 的全部内容, 来源链接: utcz.com/qa/263270.html