【发布时间】:2020-05-08 21:41:54
【问题描述】:
我正在尝试使用 PHP 上传内容,并对允许上传的总大小设置限制。我想将我的上传限制为 2MB,但出于某种原因,每当我尝试使用这样的 if 语句进行检查时:
if (($_FILES["file"]["size"] < 2097152))
一个大的文件(例如一个 7mb 的文件)将通过 if 语句,因为无论出于何种原因,如果我打印 $_FILES["file"]["size"],它将返回 0,而不是正确的字节数。如果我尝试上传较小的内容,例如 342kb,$_FILES["file"]["size"] 将返回正确的大小。
有没有办法让$_FILES["file"]["size"] 实际保持文件的正确大小?否则我不知道如何解决这个问题。
【问题讨论】:
-
您的 php.ini 中可上传数据的限制是多少?您确定您尝试上传的文件 (7MB) 确实已正确上传吗?我觉得不是……
-
我不是 100% 确定,但文件的最大上传大小由 php.ini 设置,即 php 配置文件。如果文件大于该限制,它甚至永远不会被上传,这就是为什么你会得到一个文件大小为 0。
-
尝试
var_dump($_FILES);;) 并检查错误报告... -
你是对的,7mb的文件没有正确上传。我得到一个返回码 1,因为 php.ini 有 2MB 的限制。这就是为什么我试图编写 if 语句,但 if 语句不起作用。编辑:由于某种原因,大于 2MB 的文件实际上会建立连接并开始上传,它在上传文件后会失败。
标签: php file-upload