我想知道名为MAX_FILE_SIZE
的隐藏字段应该如何工作?
<form action="" method="post" enctype="multipart/form-data">
<!-- in byes must preceed file field -->
<input type="hidden" name="MAX_FILE_SIZE" value="2097152" />
<input type="file" name="upload" />
<input type="submit" name="submit" value="Submit" />
</form>
我上传了一个4MB以上的文件,但没有从客户端发出警告(我不是在谈论服务器端)。
MAX_FILE_SIZE
应该做什么?更新
好的,因此它对PHP施加了“软”限制。但是使用它和检查代码中的
$_FILES['upload']['size'] < 2000
之类的东西有什么区别吗? 最佳答案
MAX_FILE_SIZE
以KB为单位,而不是字节。您说对了,以字节为单位。因此,对于4MB convert 4MB in bytes {1024 * (1024 * 4)}
的限制,请尝试:
<input type="hidden" name="MAX_FILE_SIZE" value="4194304" />
更新1
正如其他人所解释的那样,您将永远不会收到警告。它只是在服务器端施加软限制。
更新2
回答您的子问题。是的,有区别,您永远不要相信用户输入。如果要始终施加限制,则必须始终检查其大小。不要相信
MAX_FILE_SIZE
的功能,因为它可以被用户更改。因此,是的,您应该检查以确保其大小始终等于或大于您想要的大小。所不同的是,如果您施加了2MB的
MAX_FILE_SIZE
,并且用户尝试上传4MB的文件,则当它们到达大约前2MB的上传文件时,传输将终止,PHP将停止接受该文件的更多数据。它将在文件数组上报告错误。关于php - HTML上载MAX_FILE_SIZE似乎无效,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6327965/