在文件上傳中,我們經常會要求顯 示用戶上傳文件大小,超過上傳限制的文件就會不允許用戶上傳。雖然我們可以用程序去判斷上傳文件是否超過限制,但是其實我們的PHP程序是無法判斷用戶本 地文件大小的。所以等到我們的PHP來判斷文件大小的時候,那個文件其實已經上傳到服務器了。這時候再判斷超過限制了,不允許上傳。可就有點馬后炮了。
那么有沒有辦法在文件上傳之前就判斷將要上傳的文件是否超過限制,不允許用戶上傳呢?答案是肯定的,只是經常被人們遺忘而已。這個辦法不是在程序上解決的。而是使用html的標簽解決的。
<input type="hidden" name="MAX_FILE_SIZE" value="30000" />
將這段代碼一定要放到文件提交框之前,就可以了。給個完整的例子如下:
<form enctype="multipart/form-data" action="__URL__" method="POST">
<!-- MAX_FILE_SIZE must precede the file input field -->
<input type="hidden" name="MAX_FILE_SIZE" value="30000" />
<!-- Name of input element determines name in $_FILES array -->
Send this file: <input name="userfile" type="file" />
<input type="submit" value="Send File" />
</form>
使用了這個隱藏域之后,可以在用戶提交之后,文件上傳之前就進行限制判斷,超過限制,馬上做出$_FILES['error'] =2的錯誤。這樣就可以避免等一個大文件傳上服務器以后才發現超過限制了。這樣既浪費了用戶的表情,也浪費了我們的貸款。所以在這里,我ArthurXF 強烈建議大家在做文件上傳的時候加上上面的限制,以提高用戶的體驗!