ImgURL是一个简单、纯粹的图床程序,让个人图床多一个选择。
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

96 lines
3.0 KiB

<?php
error_reporting(E_ALL^E_NOTICE^E_WARNING^E_DEPRECATED);
//载入配置文件
include_once("./config.php");
//载入TinyPNG
require_once("functions/tinypng/Tinify/Exception.php");
require_once("functions/tinypng/Tinify/ResultMeta.php");
require_once("functions/tinypng/Tinify/Result.php");
require_once("functions/tinypng/Tinify/Source.php");
require_once("functions/tinypng/Tinify/Client.php");
require_once("functions/tinypng/Tinify.php");
//初始化值
$dispose['compress'] = 0;
$dispose['level'] = 0;
//获取ID
$id = $_GET['id'];
$id = (int)$id;
//获取tinypng key
$tinykey = array_rand($tinypng['key']); //取出数组键值
$tinykey = $tinypng['key'][$tinykey];
//获取ModerateContent key
$mckey = $ModerateContent['key'];
//如果ID不存在或为空
if((!isset($id)) || ($id == '')) {
echo 'ID错误!';
exit;
}
//查询对应信息
$info = $database->get("imginfo",[
"id",
"path",
"compress",
"level"
],[
"id" => $id
]);
//组合为完整的URL地址
$imgurl = $config['domain'].$info['path'];
//获取压缩状态
$compress = $info['compress'];
//获取图片等级
$level = $info['level'];
//获取文件后缀名
$suffix = substr(strrchr($info['path'], '.'), 1);
//后缀变为小写
$suffix = strtolower($suffix);
if(($suffix == 'png') || ($suffix == 'jpg') || ($suffix == 'jpeg')) {
$iscompress = 1;
}
//对图片进行压缩
if(($tinypng['option'] == true) && ($iscompress == 1) && ($compress == 0)) {
//初始化
\Tinify\setKey($tinykey);
$source = \Tinify\fromUrl($imgurl);
//覆盖原有图片
$source->toFile($info['path']);
//更新数据库
$database->update("imginfo",[
"compress" => 1
],[
"id" => $id
]);
$dispose['compress'] = 1;
}
//对图片进行鉴黄
if(($ModerateContent['option'] == true) && (($level == 0) || ($level == null))) {
$apiurl = "https://www.moderatecontent.com/api/v2?key=".$mckey."&url=".$imgurl;
$curl = curl_init($apiurl);
curl_setopt($curl, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.117 Safari/537.36");
curl_setopt($curl, CURLOPT_FAILONERROR, true);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
$html = curl_exec($curl);
curl_close($curl);
//更新数据库
$html = json_decode($html);
$level = $html->rating_index;
$database->update("imginfo",["level" => $level],["id" => $id]);
$dispose['level'] = $level;
}
//返回json数据
$dispose['code'] = 1;
$dispose = json_encode($dispose);
echo $dispose;
?>