您的位置:首页 > 编程语言 > PHP开发

PHP多文件上传函数

2017-08-26 22:50 543 查看
封装的函数
<?php
/*
*@获取数组信息
*@三维数组转化为二位数组
*/
function getFiles() {
$i=0;
foreach ($_FILES as $file) {
if(is_string($file['name'])){
$files[$i]=$file;
$i++;
}elseif(is_array($file['name'])){
foreach ($file['name'] as $key => $value) {
$files[$i]['name']=$file['name'][$key];
$files[$i]['type']=$file['type'][$key];
$files[$i]['tmp_name']=$file['tmp_name'][$key];
$files[$i]['error']=$file['error'][$key];
$files[$i]['size']=$file['size'][$key];
$i++;
}
}
}
return $files;
}
/*
*多文件上传
*/

function uploadFile($fileInfo,$flag=true,$path='./uploads',$maxSize=1048576,$allowExt=array('jpeg','jpg','png','gif','wbmp')) {
//判断错误号
if($fileInfo['error']===UPLOAD_ERR_OK){

//检测上传的大小
if($fileInfo['size']>$maxSize){

$res['msg']=$fileInfo['name'].'上传文件过大';
}

//检测上传文件的类型
// $allowExt=array('jpeg','jpg','png','gif','wbmp');
$ext=getExt($fileInfo['name']);
if(!in_array($ext,$allowExt)){

$res['msg']=$fileInfo['name'].'非法文件类型';

}

//检测是否是真实的图片类型
// $flag=true;
if($flag){
if(!getimagesize($fileInfo['tmp_name'])){

$res['msg']=$fileInfo['name'].'不是真正的图片类型';
}
}

//检测文件是否是通过HTTP POST方式上传的
if(!is_uploaded_file($fileInfo['tmp_name'])){

$res['msg']=$fileInfo['name'].'文件不是通过HTTP POST方式上传的合法文件';

}
//上传文件
if($res) return $res;
// $path='./uploads';
if(!file_exists($path)){
mkdir($path,0777,true);
chmod($path,0777);
}

$uriName=getUniName();
$destination=$path.'/'.$uriName.'.'.$ext;

if(!move_uploaded_file($fileInfo['tmp_name'],$destination)){

$res['msg']=$fileInfo['name'].'文件移动失败';
}
//文件上传成功
$res['msg']=$fileInfo['name'].'文件上传成功';
$res['dest']=$destination;
return $res;

}else{

switch ($fileInfo['error']) {
case 1:
$res['msg']= '上传文件超过了PHP配置文件中upload_max_filesize选项的值';
break;
case 2:
$res['msg']= '超过了表单MAX_FTLE_SIZE限制的大小';
break;
case 3:
$res['msg']='文件部分被上传';
break;
case 4:
$res['msg']= '没有选择上传文件';
break;
case 6:
$res['msg']= '没有找到临时目录';
break;
case 7:
case 8:
$res['msg']= '系统错误';
break;
}
return $res;
}
}
/*
*得到扩展名
*/
function getExt($filename){
return strtolower(pathinfo($filename,PATHINFO_EXTENSION));
}

/*
*得到唯一文件名
*/
function getUniName(){
return md5(uniqid(microtime(true),true));
}

// 过滤空值,新数组输出
// $uploadFiles = array_values(array_filter($uploadFiles));
<?php
/*
*@获取数组信息
*@三维数组转化为二位数组
*/
function getFiles() {
$i=0;
foreach ($_FILES as $file) {
if(is_string($file['name'])){
$files[$i]=$file;
$i++;
}elseif(is_array($file['name'])){
foreach ($file['name'] as $key => $value) {
$files[$i]['name']=$file['name'][$key];
$files[$i]['type']=$file['type'][$key];
$files[$i]['tmp_name']=$file['tmp_name'][$key];
$files[$i]['error']=$file['error'][$key];
$files[$i]['size']=$file['size'][$key];
$i++;
}
}
}
return $files;
}
/*
*多文件上传
*/

function uploadFile($fileInfo,$flag=true,$path='./uploads',$maxSize=1048576,$allowExt=array('jpeg','jpg','png','gif','wbmp')) {
//判断错误号
if($fileInfo['error']===UPLOAD_ERR_OK){

//检测上传的大小
if($fileInfo['size']>$maxSize){

$res['msg']=$fileInfo['name'].'上传文件过大';
}

//检测上传文件的类型
// $allowExt=array('jpeg','jpg','png','gif','wbmp');
$ext=getExt($fileInfo['name']);
if(!in_array($ext,$allowExt)){

$res['msg']=$fileInfo['name'].'非法文件类型';

}

//检测是否是真实的图片类型
// $flag=true;
if($flag){
if(!getimagesize($fileInfo['tmp_name'])){

$res['msg']=$fileInfo['name'].'不是真正的图片类型';
}
}

//检测文件是否是通过HTTP POST方式上传的
if(!is_uploaded_file($fileInfo['tmp_name'])){

$res['msg']=$fileInfo['name'].'文件不是通过HTTP POST方式上传的合法文件';

}
//上传文件
if($res) return $res;
// $path='./uploads';
if(!file_exists($path)){
mkdir($path,0777,true);
chmod($path,0777);
}

$uriName=getUniName();
$destination=$path.'/'.$uriName.'.'.$ext;

if(!move_uploaded_file($fileInfo['tmp_name'],$destination)){

$res['msg']=$fileInfo['name'].'文件移动失败';
}
//文件上传成功
$res['msg']=$fileInfo['name'].'文件上传成功';
$res['dest']=$destination;
return $res;

}else{

switch ($fileInfo['error']) {
case 1:
$res['msg']= '上传文件超过了PHP配置文件中upload_max_filesize选项的值';
break;
case 2:
$res['msg']= '超过了表单MAX_FTLE_SIZE限制的大小';
break;
case 3:
$res['msg']='文件部分被上传';
break;
case 4:
$res['msg']= '没有选择上传文件';
break;
case 6:
$res['msg']= '没有找到临时目录';
break;
case 7:
case 8:
$res['msg']= '系统错误';
break;
}
return $res;
}
}
/*
*得到扩展名
*/
function getExt($filename){
return strtolower(pathinfo($filename,PATHINFO_EXTENSION));
}

/*
*得到唯一文件名
*/
function getUniName(){
return md5(uniqid(microtime(true),true));
}
// 过滤空值,新数组输出// $uploadFiles = array_values(array_filter($uploadFiles));
view
<!-- multiple选择多个文件上传 --><input type="file" name="myFile[]" multiple="multiple"/><br><input type="submit" value="上传文件" /><br>
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>文件上传</title></head><body><form action="morefile.php" method="post" enctype="multipart/form-data"><span>请上传您的文件:</span><input type="file" name="myFile[]"/><br><span>请上传您的文件:</span><input type="file" name="myFile[]"/><br><span>请上传您的文件:</span><input type="file" name="myFile[]"/><br><span>请上传您的文件:</span><input type="submit" value="上传文件" /><br></form></body></html>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: