Php 上载大文件时,空的$\u POST和$\u FILE变量
我试图上传一个20MB大小的文件。现在默认的表单上传大小是8MB。当我上传这样一个文件时,$\u POST和$\u file变量为空。现在我想检查一下文件大小。如果这两个变量都为空,我怎么能进行这样的检查??请给我一些建议php://input,允许的8mb部分应该在那里Php 上载大文件时,空的$\u POST和$\u FILE变量,php,Php,我试图上传一个20MB大小的文件。现在默认的表单上传大小是8MB。当我上传这样一个文件时,$\u POST和$\u file变量为空。现在我想检查一下文件大小。如果这两个变量都为空,我怎么能进行这样的检查??请给我一些建议php://input,允许的8mb部分应该在那里 例如echo文件\u获取\u内容('php://input');您可以动态设置上载的最大文件大小 在你的上传函数中写下下面的语句,在这里你试图上传文件。 这将把限制提高到50MB ini_set("upload_max_fil
例如
echo文件\u获取\u内容('php://input');代码>您可以动态设置上载的最大文件大小
在你的上传函数中写下下面的语句,在这里你试图上传文件。
这将把限制提高到50MB
ini_set("upload_max_filesize", "50M");
如果要检查文件变量,可以使用可选的HTTP\U POST\U文件
$theFileSize = $HTTP_POST_FILES['file']['size'];
希望这能对你有所帮助
谢谢。使用MAX\u FILE\u SIZE
作为隐藏输入字段,如果文件大于限制,这将停止用户等待,并且不会执行代码,因此变量不会为空
最大文件大小隐藏字段(以字节为单位)必须位于
文件输入字段,其值为可接受的最大文件大小
PHP。在保存用户信息时,应始终使用此表单元素
等待一个大文件被传输却发现它的麻烦
它太大,传输失败。记住:愚弄这个
在浏览器端进行设置非常简单,因此永远不要依赖具有
此功能阻止了更大的大小。这只不过是一个例子
方便应用程序客户端用户的功能。
但是,最大大小的PHP设置(在服务器端),
不能被愚弄
不知道你到底想要什么。但您可以使用以下方法探测接收到的内容大小:
$_SERVER["CONTENT_LENGTH"]
这应该可以告诉我们POST请求主体有多大。(如果上传中止,该数字可能高于实际接收的内容。)除非出现任何代码错误,否则您的20MB
很可能超出了上传限制。
从php.ini
文件中永久更改此选项
使用
仅为该会话设置最大上载大小。邮递
用这个
ini_set("post_max_size", "30M");
检查尺寸
echo ini_get("post_max_size") . "\n";
echo ini_get("upload_max_filesize");
还有…您的php.ini上传限制是多少?如果表单上传限制设置为低于您试图上传的文件大小,那么浏览器肯定不会提交表单,因为这是客户端检查。。。即使是这样,请注意这些文件是在$\u文件
中找到的,而不是在$\u文件
中找到的-这是您的问题,还是仅仅是打字错误?还要注意的是,即使上传成功,$\u POST
也将为空,如果表单中只有文件输入。哪些浏览器使用隐藏字段?所有浏览器都使用隐藏字段,它与表单一起发送。除非您指的是什么浏览器理解MAX\u FILE\u SIZE
字段,在这种情况下,答案是这是服务器端检查,否则如果上传的文件大小达到该大小,PHP将停止脚本。不同之处在于,PHP可以在上传时从缓冲区中进行检查,而不是等到上传完整个文件后才知道文件的大小。我不明白。。如果这是一个服务器端检查,为什么PHP不查看ini设置并使用它呢?我的上传和post一起失败。我检查了$\u文件和$\u POST变量。两者都不包含任何内容。即使$HTTP_POST_文件失败,你也不应该更新你自己的帖子,这被认为是违反规则的,你可能会被禁止。你知道我在说什么吗about@genesis好啊对不起,我不会再那样做了。@genesis是的。如何加入或删除帐户?
echo ini_get("post_max_size") . "\n";
echo ini_get("upload_max_filesize");