PHP上传多文件
知识点:
一、$_FILES数组
①、$_FILES['filename']['name']上传文件原名
②、$_FILES['filename']['tmp_name']上传成功后的缓存文件名
③、$_FILES['filename']['size']上传文件大小
④、$_FILES['filename']['type']上传文件的MIME类型,最好在页面显示验证
⑤、$_FILES['filename']['error']上传返回的信息,共有五个:
0:成功,
1:超出上传文件的大小(php限定上传文件的函数upload_max_filesize(),建议使用php本身的这个函数来限制文件上传的大小),
2:超出上传文件的大小,
3:文件未上传,或者上传过程中中断
4:没有指定上传文件就提交表单
6:临时目录不存在
7:文件无法写入磁盘(PHP5新增)
8:PHP配置问题导致上传失败(PHP5新增)
二、函数:
①、is_upload_file():上传文件是否使用post方法上传,参数:上传的缓存文件
②、move_upload_file():将上传的缓存数据移动到其他文件夹下进行保存,参数1:上传的缓存文件,参数2:存放文件的地址+文件名(包含后缀名)
html代码:
<!doctype html> <html> <head> <meta charset="UTF-8"> </head> <body> <form action="in.php" enctype="multipart/form-data" method="post"> <input type="file" multiple="multiple" name="file[]"><br> <button type="submit">提交</button> </form> </body> </html>
php代码:
header("Content-type:text/html;charset=utf-8"); for($i=0;$i<count($_FILES['file']['name']);$i++){ $filename = iconv("UTF-8", "GBK", $_FILES['file']['name'][$i]); if(is_uploaded_file($_FILES['file']['tmp_name'][$i])){ $uploads = move_uploaded_file($_FILES['file']['tmp_name'][$i],"D:\Documents\uploads/".$filename); if($uploads){ echo $i; } } }