';
}
} else {
echo '单个文件上传';
}
*/
$mimes = ['p_w_picpath/jpeg','p_w_picpath/png','p_w_picpath/gif'];
$suffixs = ['jpg','jpeg','pjpeg','png','gif'];
//var_dump(upload('icon',$mimes,$suffixs,'upload',true));
function upload($key,$mimes,$suffixs,$path=null,$rand_name=false)
{
$data = $_FILES[$key];
if ($error = $data['error']) {
switch ($error) {
case UPLOAD_ERR_INI_SIZE:
$msg = '超过了upload_max_filesize的值';
break;
case UPLOAD_ERR_FORM_SIZE:
$msg = '超过了表单中MAX_FILE_SIZE的值';
break;
case UPLOAD_ERR_PARTIAL:
$msg = '部分文件上传';
break;
case UPLOAD_ERR_NO_FILE:
$msg = '没有文件上传';
break;
case UPLOAD_ERR_NO_TMP_DIR:
$msg = '没有找到临时目录';
break;
case UPLOAD_ERR_CANT_WRITE:
$msg = '文件写入失败';
break;
}
return ['error'=>$error,'msg'=>$msg];
} else if ($data['size'] > pow(1024,2)*2) {
$msg = '文件超过自定义的大小2M';
return ['error'=>0,'msg'=>$msg];
}
if (!in_array($data['type'],$mimes)) {
$msg = '不支持的MIME';
return ['error'=>0,'msg'=>$msg];
}
$suffix = pathinfo($data['name'])['extension'];
if (!in_array($suffix, $suffixs)) {
$msg = '不支持的后缀名';
return ['error'=>0,'msg'=>$msg];
}
if (!is_uploaded_file($data['tmp_name'])) {
$msg = '不是上传文件';
return ['error'=>0,'msg'=>$msg];
}
if ($path) {
$path = rtrim($path,'/\\') . '/';
} else {
$path = './';
}
$path .= date('Y/m/d') . '/';
if (!file_exists($path)) {
mkdir($path, 0777, true);
}
if ($rand_name) {
$name = uniqid(). '.' . $suffix;
} else {
$name = $data['name'];
}
$pathname = $path . $name;
if (move_uploaded_file($data['tmp_name'],$pathname)) {
return ['error'=>200,'msg'=>$pathname];
} else {
$msg = '上传失败';
return ['error'=>0,'msg'=>$msg];
}
}
标题名称:PHP中封装上传文件函数
文章来源:
http://njwzjz.com/article/jpeiep.html