上传文件判断,关键的无非文件大小,类型判断
1.文件类型判断
1)客户端判断
通过js,判断文件后缀名实现。
2)服务器断判断
通过取得$_FILES ['image']['type']进行判断.
2.文件大小判断
最简单的方法,在文件域前加入hidden域max_file_size,通知浏览器
经过测试,浏览器会在文件上传前对文件大小进行判断,通过$_FILES['userfile']['error']
返回值进行判断
$_FILES['userfile']['error'] 和该文件上传相关的错误代码
值:0; 没有错误发生,文件上传成功。
值:1; 上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值。
值:2; 上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值。
值:3; 文件只有部分被上传。
值:4; 没有文件被上传。
经测试,ie6,firefox3均可实现
上传文件 a.jpg<1m
上传文件 b.jpg>1m
我将$_FILE 打出来
Array ( [userfile] => Array ( [name] => a.jpg [type] => image/jpeg [tmp_name] => C:/WINDOWS/Temp/php1A0.tmp [error] => 0 [size] => 41423 ) )
Array ( [userfile] => Array ( [name] => b-myjpnc-box.jpg [type] => [tmp_name] => [error] => 2 [size] => 0 ) )
可以看出$_FILES['userfile']['error'] 是在临时文件未生成时就可以得到的,因此可以通过此方法来检测文件大小,避免长时间的等待