我想知道名为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" />
php - HTML上载MAX_FILE_SIZE似乎无效-LMLPHP
更新1
正如其他人所解释的那样,您将永远不会收到警告。它只是在服务器端施加软限制。
更新2
回答您的子问题。是的,有区别,您永远不要相信用户输入。如果要始终施加限制,则必须始终检查其大小。不要相信MAX_FILE_SIZE的功能,因为它可以被用户更改。因此,是的,您应该检查以确保其大小始终等于或大于您想要的大小。
所不同的是,如果您施加了2MB的MAX_FILE_SIZE,并且用户尝试上传4MB的文件,则当它们到达大约前2MB的上传文件时,传输将终止,PHP将停止接受该文件的更多数据。它将在文件数组上报告错误。

关于php - HTML上载MAX_FILE_SIZE似乎无效,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6327965/

10-09 13:46