多文件上传
/**
* Notes: 多文件上传数组
* User: SongZhanDi
* Date: 2018/9/6
* Time: 16:28
* @return mixed
*/
function buildInfo(){
$i = 0;
foreach ($_FILES as $v){//三维数组转换成2维数组
if(is_string($v['name'])){ //单文件上传
$info[$i] = $v;
$i++;
}else{ // 多文件上传
foreach ($v['name'] as $key=>$val){//2维数组转换成1维数组
//取出一维数组的值,然后形成另一个数组
//新的数组的结构为:info=>i=>('name','size'.....)
$info[$i]['name'] = $v['name'][$key];
$info[$i]['size'] = $v['size'][$key];
$info[$i]['type'] = $v['type'][$key];
$info[$i]['tmp_name'] = $v['tmp_name'][$key];
$info[$i]['error'] = $v['error'][$key];
$i++;
}
}
}
return $info;
}
/**
* Notes:文件上传(可用于多文件)
* User: SongZhanDi
* Date: 2018/9/6
* Time: 16:28
* @param $num
* @param $file
* @param $file_type
* @param mixed $dir
* @param mixed $path
* @return string
*/
function upload($num = 1,$file,$file_type,$dir=DT_ROOT,$path = DT_PATH){
if ($file["error"]) {
switch($file["error"]){
case 1:
$msg="上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值";
break;
case 2:
$msg="上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值";
break;
case 3:
$msg="文件只有部分被上传";
break;
case 4:
$msg="没有文件被上传";
break;
case 6:
$msg="找不到临时文件夹";
break;
case 7:
$msg="文件写入失败";
break;
default:
$msg="未知的上传错误";
break;
}
$tag['status'] = 2;
newDie($msg);
} else {
//获取上传文件类型
$fileay = explode('.',$file['name']);
$type = $fileay[count($fileay) - 1];
if (in_array($type,$file_type)) {
// 如果目录不存在
$dirname = $dir . '/file/jieqing/' .date('Ym', time());
if (!file_exists($dirname)) {
mkdir($dirname,0777,true);
}
// 文件名
$filename = $dirname . '/' . md5($file['name'] . round(0,9999)) . time() . $num . '.png';
// url
$file_url = $path . '/file/jieqing/' .date('Ym', time()) . '/' . md5($file['name'] . round(0,9999)) . time() . $num . '.png';
//转码,把utf-8转成gb2312,返回转换后的字符串, 或者在失败时返回 FALSE。
$filename = iconv("UTF-8", "gb2312", $filename);
//保存文件, move_upload ed_file 将上传的文件移动到新位置
move_uploaded_file($file["tmp_name"], $filename);
return $file_url;
} else {
$tag['status'] = 2;
newDie('文件格式不正确');
}
}
}
当前页面是本站的「Google AMP」版。查看和发表评论请点击:完整版 »