/**
* Notes: 文件上传
* Created by jessie@seabig.cn
* DateTime: 2020-02-18 16:17
*/
public function UploadImg()
{
$this->_globals();
//数据过滤
if (!$_FILES) {
die(json_encode(array("status" => "false","code" => "500", "msg" => "上传失败,请上传文件")));
}
$savepath = _FILE_PATH;
$tempFile = $_FILES['file']['tmp_name'];
//获取文件
$file = $_FILES['file'];
//$savepath = _FILE_PATH;
$tempFile = $file['tmp_name'];
//获取文件名
$name = substr($file['name'], 0, strrpos($file['name'], "."));
//获取文件后缀名
$ext = strtolower(substr(strrchr($file['name'],'.'),1));
//定义文件保存路径、递归创建文件夹
$mkpath = $savepath . "/" . date("Y") . "/" . date("m") . "/" . date("d");
$this->mkpath($mkpath);
//生成文件名
$filesname = date("Y") . "/" . date("m") . "/" . date("d") . "/" . date('His') . strtolower($this->random(16)) . "." . $ext;
$move = move_uploaded_file($tempFile, $savepath . "/" . $filesname);
if ($move) {
// layui富文本编辑器上传图片接口 (返回格式不一样)
die(json_encode(array("status" => "true","code" => "0", "msg" => "上传成功", "data" => array("src" => '/uploads/'.$filesname, "title" => $name))));
} else {
die(json_encode(array("status" => "false","code" => "500", "msg" => "上传失败")));
}
}
/**
* 生成随机数字
*
* @param int 长度 $length
* @param int 是否仅限数字 $numeric
* @return unknown
*/
private function random($length, $numeric = 0)
{
PHP_VERSION < '4.2.0' && mt_srand((double)microtime() * 1000000);
if ($numeric) {
$hash = sprintf('%0' . $length . 'd', mt_rand(0, pow(10, $length) - 1));
} else {
$hash = '';
$chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz';
$max = strlen($chars) - 1;
for ($i = 0; $i < $length; $i++) {
$hash .= $chars[mt_rand(0, $max)];
}
}
return $hash;
}
/**
*创建多级文件夹 *
* @param 路径 /data/wwwroot/vhost/abc.seabig.cn/uploads/2002/
* @param 权限 755/777 $mode
*/
public function mkpath($path, $mode = 0777)
{
$path = str_replace("\\", "_|", $path); //将$path 中的 "\\" 替换为 "_|"
$path = str_replace("/", "_|", $path);
$path = str_replace("__", "_|", $path);
$dirs = explode("_|", $path);
$path = $dirs[0];
for ($i = 1; $i < count($dirs); $i++) {
$path .= "/" . $dirs[$i];
if (!is_dir($path)) {
mkdir($path, $mode);
}
}
}