<?php
/**
* 视频上传
* User:
* Date: 2019/7/20
* Email:
*/
/**
* @param $file 数据流
* @param $type_arr 文件类型
* @param $folder 文件分类
* @return array
*/
function file_upload($file, $type_arr, $folder)
{
//以日期为区间划分文件夹
$up_dir = $folder . '/' . date('Y-m-d', time()) . '/';
if (!file_exists($up_dir)) {
mkdir($up_dir, 0777, true); //不存在创建文件夹
chmod($up_dir, 0777); //强制赋予权限
}
if (in_array($file["type"], $type_arr)) {
if ($file["error"] > 0) {
return $res = array('code' => '101', 'msg' => $file["error"]);
} else {
//大于10m 不存储
if (($file["size"] / 1048576) > 20) {
return $res = array('code' => '406', 'msg' => '文件过大,上限20m!');
}
//获取后缀
$name = explode('/', $file["type"]);
$file_name = $up_dir . date('YmdHis', time()) . '.' . $name[1];
// echo "Upload: " . $_FILES["file"]["name"] . "<br />";
// echo "Type: " . $_FILES["file"]["type"] . "<br />";
// echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
// echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br />";
if (file_exists($file_name)) {
return $res = array('code' => '406', 'msg' => '文件已存在!');
} else {
move_uploaded_file($file["tmp_name"], $file_name);
return $res = array('code' => '0', 'msg' => '上传成功!', 'path' => $file_name);
}
}
} else {
return $res = array('code' => '104', 'msg' => '无效的文件类型!');
}
}
//限制类型数组
$type_arr = [
'image/gif',
'image/jpeg',
'image/png',
'video/mp4',
];
$files = !empty($_FILES["file"]) ? $_FILES["file"] : ""; //文件
$folder = !empty($_POST['type']) ? trim($_POST['type']) : 'Avatar'; //存储文件夹
$rs = file_upload($files, $type_arr, $folder);
echo json_encode($rs);
exit();
?>