我正在尝试使用PHP上传内容,并对允许上传的总大小设置限制.我想将上传限制为2MB,但出于某种原因,每当我尝试使用if语句进行检查时:
if (($_FILES["file"]["size"] < 2097152))
Run Code Online (Sandbox Code Playgroud)
大的文件(例如7mb文件)将通过if语句,因为无论出于何种原因,如果我打印$ _FILES ["file"] ["size"],它将返回0,而不是正确的字节数.如果我尝试上传较小的内容,例如342kb,$ _FILES ["file"] ["size"]将返回正确的大小.
反正有没有让$ _FILES ["file"] ["size"]实际保持文件的正确大小?否则我不知道如何解决这个问题.
Mar*_*c B 31
因任何原因(上传失败,超出限制等等)而中止的文件将显示为大小0
在使用其余的eupload数据执行任何操作之前,您必须检查上传SUCCESS:
if(array_key_exists('file', $_FILES)){
if ($_FILES['file']['error'] === UPLOAD_ERR_OK) {
echo 'upload was successful';
} else {
die("Upload failed with error code " . $_FILES['file']['error']);
}
}
Run Code Online (Sandbox Code Playgroud)
错误代码在此处定义.在您的情况下,如果您已经硬编码了2meg限制并且有人上传了2.1兆字节的文件,那么错误代码将是UPLOAD_ERR_INI_SIZE(aka 2),即"超出.ini文件中设置的限制".