在文件上传中,我们经常会要求显 示用户上传文件大小,超过上传限制的文件就会不允许用户上传。虽然我们可以用程序去判断上传文件是否超过限制,但是其实我们的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 强烈建议大家在做文件上传的时候加上上面的限制,以提高用户的体验!