|
|
|
<?php
|
|
|
|
//载入配置文件
|
|
|
|
include_once("./class/class.user.php");
|
|
|
|
//检查用户是否登录
|
|
|
|
$status = $basis->check($config);
|
|
|
|
|
|
|
|
//检查用户是否登陆来判断上传目录
|
|
|
|
if($status == 'islogin') {
|
|
|
|
//设置上传路径
|
|
|
|
$updir = $config['admindir'];
|
|
|
|
}
|
|
|
|
else{
|
|
|
|
$updir = $config['userdir'];
|
|
|
|
//限制用户上传数量
|
|
|
|
$basis->limitnum();
|
|
|
|
}
|
|
|
|
|
|
|
|
//获取上传者信息
|
|
|
|
$ip = $_SERVER['REMOTE_ADDR'];
|
|
|
|
$ua = $_SERVER['HTTP_USER_AGENT'];
|
|
|
|
$date = date('Y-m-d',time());
|
|
|
|
//载入上传类
|
|
|
|
include('./class/class.upload.php');
|
|
|
|
|
|
|
|
//上传方法
|
|
|
|
$handle = new upload($_FILES['file']);
|
|
|
|
if ($handle->uploaded) {
|
|
|
|
$handle->file_new_name_body = 'image_resized';
|
|
|
|
//允许上传大小2m
|
|
|
|
$handle->file_max_size = '2097152';
|
|
|
|
//允许的MIME类型,仅运行上传图片
|
|
|
|
$handle->allowed = array('image/*');
|
|
|
|
|
|
|
|
// 当前月份
|
|
|
|
$current_time = date('ym',time());
|
|
|
|
//上传路径:目录 + 时间
|
|
|
|
$handle->process('../'.$updir.'/'.$current_time."/");
|
|
|
|
if ($handle->processed) {
|
|
|
|
//获取站点域名
|
|
|
|
$domain = $config['domain'];
|
|
|
|
//生成文件hash
|
|
|
|
$fhash = hash_file("md5",$handle->file_dst_pathname,FALSE);
|
|
|
|
$fhash = substr($fhash,8,16);
|
|
|
|
//新的文件名(../temp/1804/\d64c8036c0605175.jpg)
|
|
|
|
$new_img = $handle->file_dst_path.$fhash.'.'.$handle->file_dst_name_ext;
|
|
|
|
//图片URL地址
|
|
|
|
$imgurl = $domain.$updir.'/'.$current_time.'/'.$fhash.'.'.$handle->file_dst_name_ext;
|
|
|
|
//图片路径(temp/1804/d64c8036c0605175.jpg)
|
|
|
|
$imgdir = $updir.'/'.$current_time.'/'.$fhash.'.'.$handle->file_dst_name_ext;
|
|
|
|
|
|
|
|
//判断文件是否已经存在
|
|
|
|
if(!is_file($new_img)) {
|
|
|
|
//对文件更名
|
|
|
|
rename($handle->file_dst_pathname,$new_img);
|
|
|
|
}
|
|
|
|
else{
|
|
|
|
//删除原始文件
|
|
|
|
unlink($handle->file_dst_pathname);
|
|
|
|
}
|
|
|
|
|
|
|
|
//检查某张图片是否已经上传过,如果已经上传了,直接返回数据并终止操作
|
|
|
|
$basis->isupload($imgdir);
|
|
|
|
|
|
|
|
//没有上传过的图片,继续写入数据库
|
|
|
|
$last_user_id = $database->insert("imginfo", [
|
|
|
|
"path" => $imgdir,
|
|
|
|
"ip" => $ip,
|
|
|
|
"ua" => $ua,
|
|
|
|
"date" => $date,
|
|
|
|
"dir" => $updir,
|
|
|
|
"compress" => 0,
|
|
|
|
"level" => 0
|
|
|
|
]);
|
|
|
|
//返回最后的ID
|
|
|
|
$account_id = $database->id();
|
|
|
|
//上传成功,返回json数据
|
|
|
|
$redata = array(
|
|
|
|
"code" => 1,
|
|
|
|
"id" => $account_id,
|
|
|
|
"url" => $imgurl,
|
|
|
|
"width" => $handle->image_dst_x,
|
|
|
|
"height" => $handle->image_dst_y
|
|
|
|
);
|
|
|
|
echo $redata = json_encode($redata);
|
|
|
|
$handle->clean();
|
|
|
|
} else {
|
|
|
|
//上传出现错误,返回报错信息
|
|
|
|
$redata = array(
|
|
|
|
"code" => 0,
|
|
|
|
"msg" => $handle->error
|
|
|
|
);
|
|
|
|
echo json_encode($redata);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
?>
|