MAX_FILE_SIZE
is in KB not bytes. You were right, it is in bytes. So, for a limit of 4MB convert 4MB in bytes {1024 * (1024 * 4)}
try:
<input type="hidden" name="MAX_FILE_SIZE" value="4194304" />
Update 1
As explained by others, you will never get a warning for this. It's there just to impose a soft limit on server side.
Update 2
To answer your sub-question. Yes, there is a difference, you NEVER trust the user input. If you want to always impose a limit, you always must check its size. Don't trust what MAX_FILE_SIZE
does, because it can be changed by a user. So, yes, you should check to make sure it's always up to or above the size you want it to be.
The difference is that if you have imposed a MAX_FILE_SIZE
of 2MB and the user tries to upload a 4MB file, once they reach roughly the first 2MB of upload, the transfer will terminate and the PHP will stop accepting more data for that file. It will report the error on the files array.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…