73 lines
3.1 KiB
PHP
73 lines
3.1 KiB
PHP
<?php
|
||
include_once $_SERVER['DOCUMENT_ROOT'].'/modules/header-loader.php';
|
||
include_once $_SERVER['DOCUMENT_ROOT']."/plugins/SqlConn.php";
|
||
require_once $_SERVER['DOCUMENT_ROOT'].'/Aliyun/aliyun-oss-php-sdk-2.6.0.phar';
|
||
require_once $_SERVER['DOCUMENT_ROOT'].'/Aliyun/autoload.php';
|
||
|
||
use OSS\OssClient;
|
||
use OSS\Core\OssException;
|
||
|
||
/**
|
||
* @var array $data 数据
|
||
* @var array $config setting
|
||
* @var mysqli $SqlConn MySQL Connect
|
||
*/
|
||
|
||
if (htmlspecialchars($_POST['P_open'])) $open = 1;
|
||
else $open = 0;
|
||
|
||
if (!empty($_FILES['P_image']['name'][0])) {
|
||
// 阿里云账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM用户进行API访问或日常运维,请登录RAM控制台创建RAM用户。
|
||
$accessKeyId = $config['Aliyun']['AccessKeyID'];
|
||
$accessKeySecret = $config['Aliyun']['AccessKeySecret'];
|
||
// Endpoint以华东1(杭州)为例,其它Region请按实际情况填写。
|
||
$endpoint = "https://oss-cn-shenzhen-internal.aliyuncs.com";
|
||
// 填写Bucket名称。
|
||
$bucket= "nw-love";
|
||
|
||
for ($i=0; $i<count($_FILES['P_image']['name']); $i++) {
|
||
$tmpFilePatch = $_FILES['P_image']['tmp_name'][$i];
|
||
$data = explode('.',$_FILES['P_image']['name'][$i]);
|
||
$new_name = rand(1000,9999).time().rand(1000,9999).'.'.$data[1];
|
||
$_FILES['P_image']['name'][$i] = $new_name;
|
||
if ($tmpFilePatch != '') {
|
||
move_uploaded_file($_FILES["P_image"]["tmp_name"][$i], $_SERVER['DOCUMENT_ROOT']."/cache/" . $_FILES["P_image"]["name"][$i]);
|
||
$FilePatch[$i] = $_SERVER['DOCUMENT_ROOT']."/cache/" . $_FILES["P_image"]["name"][$i];
|
||
}
|
||
}
|
||
|
||
try{
|
||
$ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint);
|
||
// 第一次追加上传。第一次追加的位置是0,返回值为下一次追加的位置。后续追加的位置是追加前文件的长度。
|
||
for ($i=0; $i<count($_FILES['P_image']['name']); $i++) {
|
||
$object = "Upload/".htmlspecialchars($_POST['P_album'])."/".$_FILES["P_image"]["name"][$i];
|
||
// 填写不包含Bucket名称在内的Object的完整路径。
|
||
$ossClient->uploadFile($bucket, $object, $FilePatch[$i]);
|
||
mysqli_query($SqlConn,"INSERT INTO ".$config['TABLE']['Album']." (`album_id`,`url`,`date`,`open`,`uploader`) VALUES ('".htmlspecialchars($_POST['P_album'])."','https://img.na-wen.love/Upload/".htmlspecialchars($_POST['P_album'])."/".$_FILES['P_image']['name'][$i]."','".date('Y-m-d')."','".$open."','".$_COOKIE['user']."')");
|
||
unlink($_SERVER['DOCUMENT_ROOT']."/cache/" . $_FILES["P_image"]["name"][$i]);
|
||
}
|
||
} catch(OssException $e) {
|
||
// 输出结果
|
||
$data = [
|
||
'output' => 'UPLOAD_ALIYUN_FAIL',
|
||
'code' => 403,
|
||
'info' => '上传失败',
|
||
];
|
||
return;
|
||
}
|
||
// 输出结果
|
||
$data = [
|
||
'output' => 'SUCCESS',
|
||
'code' => 200,
|
||
'info' => '完成',
|
||
'data' => $_FILES['P_image']['tmp_name'],
|
||
];
|
||
} else {
|
||
// 输出结果
|
||
$data = [
|
||
'output' => 'IMAGE_NONE',
|
||
'code' => 403,
|
||
'info' => '你的图片呢?',
|
||
];
|
||
}
|
||
echo $data['output']; |