我在$ _FILES [“file”] [“size”]获得> 2 GB文件上传负数。
然而,文件上传很好,而filesize()也返回正确的大小。但是如何解决$ _FILES才能返回正确的值?
我已经阅读了一些旧版本的php的问题,他们在filesize()返回负数时也有错误,但现在这似乎很好。他们只是忘记修复$ _FILES?难道你不知道它是否固定在php 5.5.0上?
PHP:5.4.16 操作系统:Debian Squeeze 6.0.7 x64 网络服务器:Nginx 1.2.7
答案 0 :(得分:4)
无论出现什么问题,你都可以解决4GB这样的问题:
$file_size = $_FILES["file"]["size"];
$true_size = $file_size >= 0 ? $file_size : 4*1024*1024*1024 + $file_size;
但是,正如你所说,filesize($_FILES["file"]["tmp_name"]);
是最安全的方式(也将超过4GB)。