Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
hexbee
Cloudreve
提交
2b646fb6
C
Cloudreve
项目概览
hexbee
/
Cloudreve
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
C
Cloudreve
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
2b646fb6
编写于
9月 08, 2018
作者:
H
HFO4
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add: RemoteAdapter
上级
e29c94d8
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
102 addition
and
191 deletion
+102
-191
application/index/model/FileManage.php
application/index/model/FileManage.php
+5
-189
application/index/model/RemoteAdapter.php
application/index/model/RemoteAdapter.php
+97
-0
extend/Krizalys/Onedrive/Client.php
extend/Krizalys/Onedrive/Client.php
+0
-2
未找到文件。
application/index/model/FileManage.php
浏览文件 @
2b646fb6
...
@@ -58,6 +58,9 @@ class FileManage extends Model{
...
@@ -58,6 +58,9 @@ class FileManage extends Model{
case
's3'
:
case
's3'
:
$this
->
adapter
=
new
\
app\index\model\S3Adapter
(
$this
->
fileData
,
$this
->
policyData
,
$this
->
userData
);
$this
->
adapter
=
new
\
app\index\model\S3Adapter
(
$this
->
fileData
,
$this
->
policyData
,
$this
->
userData
);
break
;
break
;
case
'remote'
:
$this
->
adapter
=
new
\
app\index\model\RemoteAdapter
(
$this
->
fileData
,
$this
->
policyData
,
$this
->
userData
);
break
;
default
:
default
:
# code...
# code...
break
;
break
;
...
@@ -88,30 +91,6 @@ class FileManage extends Model{
...
@@ -88,30 +91,6 @@ class FileManage extends Model{
die
(
'{ "result": { "success": false, "error": "您当前用户组最大可编辑'
.
$sizeLimit
.
'字节的文件"} }'
);
die
(
'{ "result": { "success": false, "error": "您当前用户组最大可编辑'
.
$sizeLimit
.
'字节的文件"} }'
);
}
else
{
}
else
{
$fileContent
=
$this
->
adapter
->
getFileContent
();
$fileContent
=
$this
->
adapter
->
getFileContent
();
// switch ($this->policyData["policy_type"]) {
// case 'local':
// $filePath = ROOT_PATH . 'public/uploads/' . $this->fileData["pre_name"];
// $fileContent = $this->getLocalFileContent($filePath);
// break;
// case 'qiniu':
// $fileContent = $this->getQiniuFileContent();
// break;
// case 'oss':
// $fileContent = $this->getOssFileContent();
// break;
// case 'upyun':
// $fileContent = $this->getUpyunFileContent();
// break;
// case 's3':
// $fileContent = $this->getS3FileContent();
// break;
// case 'remote':
// $fileContent = $this->getRemoteFileContent();
// break;
// default:
// # code...
// break;
// }
$result
[
"result"
]
=
$fileContent
;
$result
[
"result"
]
=
$fileContent
;
if
(
empty
(
json_encode
(
$result
))){
if
(
empty
(
json_encode
(
$result
))){
$result
[
"result"
]
=
iconv
(
'gb2312'
,
'utf-8'
,
$fileContent
);
$result
[
"result"
]
=
iconv
(
'gb2312'
,
'utf-8'
,
$fileContent
);
...
@@ -120,15 +99,6 @@ class FileManage extends Model{
...
@@ -120,15 +99,6 @@ class FileManage extends Model{
}
}
}
}
/**
* 获取远程策略文本文件内容
*
* @return string 文件内容
*/
public
function
getRemoteFileContent
(){
return
file_get_contents
(
$this
->
remotePreview
()[
1
]);
}
/**
/**
* 保存可编辑文件
* 保存可编辑文件
*
*
...
@@ -142,48 +112,12 @@ class FileManage extends Model{
...
@@ -142,48 +112,12 @@ class FileManage extends Model{
die
(
'{ "result": { "success": false, "error": "空间容量不足" } }'
);
die
(
'{ "result": { "success": false, "error": "空间容量不足" } }'
);
}
}
$this
->
adapter
->
saveContent
(
$content
);
$this
->
adapter
->
saveContent
(
$content
);
// switch ($this->policyData["policy_type"]) {
// case 'local':
// $filePath = ROOT_PATH . 'public/uploads/' . $this->fileData["pre_name"];
// file_put_contents($filePath, "");
// file_put_contents($filePath, $content);
// break;
// case 'qiniu':
// $this->saveQiniuContent($content);
// break;
// case 'oss':
// $this->saveOssContent($content);
// break;
// case 'upyun':
// $this->saveUpyunContent($content);
// break;
// case 's3':
// $this->saveS3Content($content);
// break;
// case 'remote':
// $this->saveRemoteContent($content);
// break;
// default:
// # code...
// break;
// }
FileManage
::
storageGiveBack
(
$this
->
userID
,
$originSize
);
FileManage
::
storageGiveBack
(
$this
->
userID
,
$originSize
);
FileManage
::
storageCheckOut
(
$this
->
userID
,
$contentSize
);
FileManage
::
storageCheckOut
(
$this
->
userID
,
$contentSize
);
Db
::
name
(
'files'
)
->
where
(
'id'
,
$this
->
fileData
[
"id"
])
->
update
([
'size'
=>
$contentSize
]);
Db
::
name
(
'files'
)
->
where
(
'id'
,
$this
->
fileData
[
"id"
])
->
update
([
'size'
=>
$contentSize
]);
echo
(
'{ "result": { "success": true} }'
);
echo
(
'{ "result": { "success": true} }'
);
}
}
/**
* 保存远程文件内容
*
* @param string $content 文件内容
* @return void
*/
public
function
saveRemoteContent
(
$content
){
$remote
=
new
Remote
(
$this
->
policyData
);
$remote
->
updateContent
(
$this
->
fileData
[
"pre_name"
],
$content
);
}
/**
/**
* 文件名合法性初步检查
* 文件名合法性初步检查
*
*
...
@@ -358,35 +292,6 @@ class FileManage extends Model{
...
@@ -358,35 +292,6 @@ class FileManage extends Model{
*/
*/
public
function
PreviewHandler
(
$isAdmin
=
false
){
public
function
PreviewHandler
(
$isAdmin
=
false
){
return
$this
->
adapter
->
Preview
(
$isAdmin
);
return
$this
->
adapter
->
Preview
(
$isAdmin
);
// switch ($this->policyData["policy_type"]) {
// case 'qiniu':
// $Redirect = $this->qiniuPreview();
// return $Redirect;
// break;
// case 'local':
// $Redirect = $this->localPreview($isAdmin);
// return $Redirect;
// break;
// case 'oss':
// $Redirect = $this->ossPreview();
// return $Redirect;
// break;
// case 'upyun':
// $Redirect = $this->upyunPreview();
// return $Redirect;
// break;
// case 's3':
// $Redirect = $this->s3Preview();
// return $Redirect;
// break;
// case 'remote':
// $Redirect = $this->remotePreview();
// return $Redirect;
// break;
// default:
// # code...
// break;
// }
}
}
/**
/**
...
@@ -396,30 +301,6 @@ class FileManage extends Model{
...
@@ -396,30 +301,6 @@ class FileManage extends Model{
*/
*/
public
function
getThumb
(){
public
function
getThumb
(){
return
$this
->
adapter
->
getThumb
();
return
$this
->
adapter
->
getThumb
();
// switch ($this->policyData["policy_type"]) {
// case 'qiniu':
// $Redirect = $this->getQiniuThumb();
// return $Redirect;
// case 'local':
// $Redirect = $this->getLocalThumb();
// return $Redirect;
// break;
// case 'oss':
// $Redirect = $this->getOssThumb();
// return $Redirect;
// break;
// case 'upyun':
// $Redirect = $this->getUpyunThumb();
// return $Redirect;
// break;
// case 'remote':
// $remote = new Remote($this->policyData);
// return [1,$remote->thumb($this->fileData["pre_name"],explode(",",$this->fileData["pic_info"]))];
// break;
// default:
// # code...
// break;
// }
}
}
/**
/**
...
@@ -430,29 +311,6 @@ class FileManage extends Model{
...
@@ -430,29 +311,6 @@ class FileManage extends Model{
*/
*/
public
function
Download
(
$isAdmin
=
false
){
public
function
Download
(
$isAdmin
=
false
){
return
$this
->
adapter
->
Download
(
$isAdmin
);
return
$this
->
adapter
->
Download
(
$isAdmin
);
// switch ($this->policyData["policy_type"]) {
// case 'qiniu':
// return $DownloadHandler = $this->qiniuDownload();
// break;
// case 'local':
// return $DownloadHandler = $this->localDownload($isAdmin);
// break;
// case 'oss':
// return $DownloadHandler = $this->ossDownload();
// break;
// case 'upyun':
// return $DownloadHandler = $this->upyunDownload();
// break;
// case 's3':
// return $DownloadHandler = $this->s3Download();
// break;
// case 'remote':
// return $DownloadHandler = $this->remoteDownload();
// break;
// default:
// # code...
// break;
// }
}
}
/**
/**
...
@@ -572,7 +430,8 @@ class FileManage extends Model{
...
@@ -572,7 +430,8 @@ class FileManage extends Model{
S3Adapter
::
DeleteFile
(
$value
,
$uniquePolicy
[
"s3PolicyData"
][
$key
][
0
]);
S3Adapter
::
DeleteFile
(
$value
,
$uniquePolicy
[
"s3PolicyData"
][
$key
][
0
]);
self
::
deleteFileRecord
(
array_column
(
$value
,
'id'
),
array_sum
(
array_column
(
$value
,
'size'
)),
$value
[
0
][
"upload_user"
]);
self
::
deleteFileRecord
(
array_column
(
$value
,
'id'
),
array_sum
(
array_column
(
$value
,
'size'
)),
$value
[
0
][
"upload_user"
]);
}
else
if
(
in_array
(
$key
,
$uniquePolicy
[
"remoteList"
])){
}
else
if
(
in_array
(
$key
,
$uniquePolicy
[
"remoteList"
])){
self
::
remoteDelete
(
$value
,
$uniquePolicy
[
"remotePolicyData"
][
$key
][
0
]);
RemoteAdapter
::
DeleteFile
(
$value
,
$uniquePolicy
[
"remotePolicyData"
][
$key
][
0
]);
self
::
deleteFileRecord
(
array_column
(
$value
,
'id'
),
array_sum
(
array_column
(
$value
,
'size'
)),
$value
[
0
][
"upload_user"
]);
}
}
}
}
return
[
"result"
=>
[
"success"
=>
true
,
"error"
=>
null
]];
return
[
"result"
=>
[
"success"
=>
true
,
"error"
=>
null
]];
...
@@ -644,12 +503,6 @@ class FileManage extends Model{
...
@@ -644,12 +503,6 @@ class FileManage extends Model{
}
}
static
function
remoteDelete
(
$fileList
,
$policyData
){
$remoteObj
=
new
Remote
(
$policyData
);
$remoteObj
->
remove
(
array_column
(
$fileList
,
'pre_name'
));
self
::
deleteFileRecord
(
array_column
(
$fileList
,
'id'
),
array_sum
(
array_column
(
$fileList
,
'size'
)),
$fileList
[
0
][
"upload_user"
]);
}
static
function
deleteFileRecord
(
$id
,
$size
,
$uid
){
static
function
deleteFileRecord
(
$id
,
$size
,
$uid
){
Db
::
name
(
'files'
)
->
where
([
Db
::
name
(
'files'
)
->
where
([
'id'
=>
[
"in"
,
$id
],
'id'
=>
[
"in"
,
$id
],
...
@@ -664,16 +517,6 @@ class FileManage extends Model{
...
@@ -664,16 +517,6 @@ class FileManage extends Model{
])
->
setDec
(
'used_storage'
,
$size
);
])
->
setDec
(
'used_storage'
,
$size
);
}
}
public
function
remotePreview
(){
$remote
=
new
Remote
(
$this
->
policyData
);
return
[
1
,
$remote
->
preview
(
$this
->
fileData
[
"pre_name"
])];
}
private
function
remoteDownload
(){
$remote
=
new
Remote
(
$this
->
policyData
);
return
[
1
,
$remote
->
download
(
$this
->
fileData
[
"pre_name"
],
$this
->
fileData
[
"orign_name"
])];
}
/**
/**
* [List description]
* [List description]
* @param [type] $path [description]
* @param [type] $path [description]
...
@@ -945,33 +788,6 @@ class FileManage extends Model{
...
@@ -945,33 +788,6 @@ class FileManage extends Model{
public
function
signTmpUrl
(){
public
function
signTmpUrl
(){
return
$this
->
adapter
->
signTmpUrl
()[
1
];
return
$this
->
adapter
->
signTmpUrl
()[
1
];
// switch ($this->policyData["policy_type"]) {
// case 'qiniu':
// return $this->qiniuPreview()[1];
// break;
// case 'oss':
// return $this->ossPreview()[1];
// break;
// case 'upyun':
// return $this->upyunPreview()[1];
// break;
// case 's3':
// return $this->s3Preview()[1];
// break;
// case 'local':
// $options = Option::getValues(["oss","basic"]);
// $timeOut = $options["timeout"];
// $delayTime = time()+$timeOut;
// $key=$this->fileData["id"].":".$delayTime.":".md5($this->userData["user_pass"].$this->fileData["id"].$delayTime.config("salt"));
// return $options['siteURL']."Callback/TmpPreview/key/".$key;
// break;
// case 'remote':
// return $this->remotePreview()[1];
// break;
// default:
// # code...
// break;
// }
}
}
}
}
...
...
application/index/model/RemoteAdapter.php
0 → 100644
浏览文件 @
2b646fb6
<?php
namespace
app\index\model
;
use
think\Model
;
use
think\Db
;
use
\
app\index\model\Option
;
/**
* 远程策略文件管理适配器
*/
class
RemoteAdapter
extends
Model
{
private
$fileModel
;
private
$policyModel
;
private
$userModel
;
public
function
__construct
(
$file
,
$policy
,
$user
){
$this
->
fileModel
=
$file
;
$this
->
policyModel
=
$policy
;
$this
->
userModel
=
$user
;
}
/**
* 获取文本文件内容
*
* @return string 文件内容
*/
public
function
getFileContent
(){
return
file_get_contents
(
$this
->
Preview
()[
1
]);
}
/**
* 签名文件预览URL
*
* @return void
*/
public
function
Preview
(){
$remote
=
new
Remote
(
$this
->
policyModel
);
return
[
1
,
$remote
->
preview
(
$this
->
fileModel
[
"pre_name"
])];
}
/**
* 保存文件内容
*
* @param string $content 文件内容
* @return bool
*/
public
function
saveContent
(
$content
){
$remote
=
new
Remote
(
$this
->
policyModel
);
$remote
->
updateContent
(
$this
->
fileModel
[
"pre_name"
],
$content
);
}
/**
* 获取缩略图地址
*
* @return string 缩略图地址
*/
public
function
getThumb
(){
$remote
=
new
Remote
(
$this
->
policyModel
);
return
[
1
,
$remote
->
thumb
(
$this
->
fileModel
[
"pre_name"
],
explode
(
","
,
$this
->
fileModel
[
"pic_info"
]))];
}
/**
* 删除某一策略下的指定文件
*
* @param array $fileList 待删除文件的数据库记录
* @param array $policyData 待删除文件的上传策略信息
* @return void
*/
static
function
deleteFile
(
$fileList
,
$policyData
){
$remoteObj
=
new
Remote
(
$policyData
);
$remoteObj
->
remove
(
array_column
(
$fileList
,
'pre_name'
));
}
/**
* 生成文件下载URL
*
* @return array
*/
public
function
Download
(){
$remote
=
new
Remote
(
$this
->
policyModel
);
return
[
1
,
$remote
->
download
(
$this
->
fileModel
[
"pre_name"
],
$this
->
fileModel
[
"orign_name"
])];
}
/**
* 签名临时URL用于Office预览
*
* @return array
*/
public
function
signTmpUrl
(){
return
$this
->
Preview
();
}
}
?>
\ No newline at end of file
extend/Krizalys/Onedrive/Client.php
浏览文件 @
2b646fb6
<?php
<?php
namespace
Krizalys\Onedrive
;
namespace
Krizalys\Onedrive
;
/**
/**
* @class Client
* @class Client
*
*
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录