我试图上传一个20MB大小的文件。现在默认表单上传大小为8MB。当我上传这样的文件时,我得到$ _POST和$ _FILE变量为空。现在我想检查一下文件大小。如果我将这两个变量都清空,我该如何进行这样的检查?请给我建议
答案 0 :(得分:4)
除非出现任何代码错误,否则20MB
最有可能超出您的上传限制。
永久更改php.ini
文件。
使用
ini_set("upload_max_filesize", "30M");
仅设置该会话的最大上传大小。对于POST
使用此
ini_set("post_max_size", "30M");
检查尺寸
echo ini_get("post_max_size") . "\n";
echo ini_get("upload_max_filesize");
答案 1 :(得分:2)
不知道你真正想要的是什么。但您可以使用以下方式探测收到的内容大小:
$_SERVER["CONTENT_LENGTH"]
这应该告诉POST请求主体有多大。 (如果中止上传,该数字可能高于实际收到的内容。)
答案 2 :(得分:1)
结帐php://输入,允许的8mb部分应该在那里。
例如echo file_get_contents('php://input');
答案 3 :(得分:1)
您可以动态设置上传的最大文件大小。
在您尝试上传文件的上传功能中写下以下语句。 这将增加限制高达50 MB
ini_set("upload_max_filesize", "50M");
如果要检查文件变量,可以使用备用HTTP_POST_FILES
$theFileSize = $HTTP_POST_FILES['file']['size'];
希望这可以帮助你。
感谢。
答案 4 :(得分:1)
使用MAX_FILE_SIZE
作为隐藏输入字段,如果文件大于限制,这将阻止用户等待,并且不会执行您的代码,因此变量不会为空......
MAX_FILE_SIZE隐藏字段(以字节为单位)必须位于 文件输入字段,其值是接受的最大文件大小 PHP。应始终使用此表单元素,因为它可以节省用户 等待传输大文件的麻烦只是为了找到它 它太大了,转移失败了。请记住:愚弄这个 在浏览器端设置非常简单,所以永远不要依赖文件 此功能会阻止更大的尺寸。它只是一个 应用程序客户端用户的便利功能。 但是,最大尺寸的PHP设置(在服务器端) 不能被愚弄。
http://www.php.net/manual/en/features.file-upload.post-method.php