dig*_*rld 7 php apache upload progress
我正在使用PHP上传进度扩展来检索有关上传到我的网络系统的文件的信息.但是,对于大于2GB的文件,总字节数和剩余时间字段将作为负数返回.
已设置Apache以确保可以将大小高达3GB的文件上载到网站.我测试了这个并且它有效.然而,这纯粹是报告错误地回归.
我想知道这是否与PHP值的限制有关,以及可以采取哪些措施来解决它.我相信系统使用的是64位整数.如下所示:
echo "PHP_INT_MAX: " . PHP_INT_MAX;
// PHP_INT_MAX: 9223372036854775807
Run Code Online (Sandbox Code Playgroud)
以下是有关进度条如何工作和安装的一些额外信息:http://www.ultramegatech.com/blog/2010/10/create-an-upload-progress-bar-with-php-and-jquery/
要获取信息,我只需调用扩展函数:
$status = uploadprogress_get_info($unique_form_id);
Run Code Online (Sandbox Code Playgroud)
返回总字节数,剩余时间,当前字节数等,如下所示(总字节数为负):
array(11) {
["upload_id"]=> string(32) "ec75a30c24177ec1579aea93b56224f2"
["fieldname"]=> string(9) "comp_data"
["filename"]=> string(15) "Size_2-09GB.zip"
["time_start"]=> string(10) "1325851749"
["time_last"]=> string(10) "1325851758"
["speed_average"]=> string(5) "93011"
["speed_last"]=> string(6) "112618"
["bytes_uploaded"]=> string(6) "837105"
["bytes_total"]=> string(11) "-2048166056"
["files_uploaded"]=> string(1) "1"
["est_sec"]=> string(9) "-76260228"
}
Run Code Online (Sandbox Code Playgroud)
更新(2012年1月6日):我还联系了此扩展程序的开发人员,看看他们是否可以分享任何见解.
更新(2012年1月9日):扩展程序的开发人员已回复指出有关此问题的现有票证:https://bugs.php.net/bug.php?id = 59918
更新(2012年1月16日):已设法摆脱扩展返回的负值.但是,与Windows在属性窗口中所说的相比,返回的数字远远低于实际的总字节数.
使用浮点数并删除小数 - 这适用于这些较大的数字:
$filesize = filesize($large_file);
printf(Filesize: %.0f\n", $filesize);
Run Code Online (Sandbox Code Playgroud)
这个答案将确认您是否使用 64 位整数:how to have 64 bit integer on PHP?
注意:尽管该问题还有另一个答案,似乎表明 64 位整数在 Windows 上不可用 - 您使用的是什么操作系统?
| 归档时间: |
|
| 查看次数: |
1191 次 |
| 最近记录: |