一、前言
大家好,我是Kavin,给大家分享 php多文件上传 功能!
PHP的多文件上传是初学的一个重难点,在这里我给大家分享一个自己的学习过程以及源代码,下面以上传头像为例。
-
文件上传必须有一个form表单才能提交,form表单中的必须是post类型因为(get表单无法提交二进制数据),enctype属性值必须是 multipart/form-data。
*注意文件name后面必须要加中括号*
- 在PHP文件当中首先要得到上传的头像,用FILES(得到的是一个二维数组)。
- 建立一个储存头像的文件夹upload,在PHP文件当中定义一个变量用来保存“upload/”,定义另外一个数组用来保存合法的后缀名。
- 利用foreach来循环判断后缀名是否合法,如下。
//判断上传是否有错误
//取出错误信息
foreach($fileArr['error'] as $key=>$value){
// 0 1 2 0 0 0
// 数组下标 错误代码
if($value == 0) {
//获取文件的后缀
$ext = pathinfo($fileArr['name'][$key],PATHINFO_EXTENSION);
//判断文件的后缀是否合法
if(in_array($ext,$allow)){
//如果文件后缀不合法,也要给出提示
//使用uniqid() 函数创建随机的文件名,
$fname = "img_".uniqid().".".$ext;
//把上传的文件依次移动到上传目录
if(move_uploaded_file($fileArr['tmp_name'][$key], $dirName.$fname)){
echo ($key+1)."上传成功!<br>";
}
// 如果移动失败,给出提示
}else {
echo ($key+1)."文件扩展名不支持!<br>";
}
}else {
echo ($key+1)."上传错误,错误代码:".$value;
}
}
注释:下图为得到头像的二维数组图片
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。