切换导航条
此项目
正在载入...
登录
何书鹏
/
recruit
·
提交
转到一个项目
GitLab
转到仪表盘
项目
活动
文件
提交
管道
0
构建
0
图表
里程碑
问题
0
合并请求
0
成员
标记
维基
派生
网络
创建新的问题
下载为
差异文件
浏览文件
作者
PPPSCN
8 years ago
提交者
Karson
8 years ago
提交
3cac7c1f20342f86418fe9f3c98ed37eda7c6aa6
2 个父辈
a18ace7c
69c28ca7
Merge pull request !4 from PPPSCN/master
隐藏空白字符变更
内嵌
并排对比
正在显示
11 个修改的文件
包含
82 行增加
和
14 行删除
.gitignore
application/admin/command/Install/fastadmin.sql
application/admin/controller/Ajax.php
application/admin/view/common/header.html
application/common/controller/Backend.php
application/extra/upload.php
public/.htaccess
public/assets/js/backend/general/attachment.js
public/assets/js/backend/index.js
public/assets/js/require-table.js
public/assets/js/require-upload.js
.gitignore
查看文件 @
3cac7c1
...
...
@@ -5,4 +5,6 @@ composer.lock
thinkphp
vendor
runtime
public/assets/libs/
\ No newline at end of file
public/assets/libs/
/application/admin/command/Install/*.lock
/public/uploads
...
...
application/admin/command/Install/fastadmin.sql
查看文件 @
3cac7c1
...
...
@@ -93,7 +93,9 @@ CREATE TABLE `fa_attachment` (
`createtime`
int
(
10
)
unsigned
NOT
NULL
DEFAULT
'0'
COMMENT
'创建日期'
,
`updatetime`
int
(
10
)
unsigned
NOT
NULL
DEFAULT
'0'
COMMENT
'更新时间'
,
`uploadtime`
int
(
10
)
unsigned
NOT
NULL
DEFAULT
'0'
COMMENT
'上传时间'
,
PRIMARY
KEY
(
`id`
)
`sha1`
varchar
(
40
)
NOT
NULL
DEFAULT
''
COMMENT
'文件 sha1编码'
,
PRIMARY
KEY
(
`id`
),
UNIQUE
KEY
`sha1`
(
`sha1`
)
)
ENGINE
=
InnoDB
DEFAULT
CHARSET
=
utf8
ROW_FORMAT
=
DYNAMIC
COMMENT
=
'附件表'
;
-- ----------------------------
...
...
application/admin/controller/Ajax.php
查看文件 @
3cac7c1
...
...
@@ -9,6 +9,7 @@ use fast\Tree;
use
think\Config
;
use
think\Db
;
use
think\Lang
;
use
think\Cache
;
/**
* Ajax异步请求接口
...
...
@@ -183,6 +184,16 @@ class Ajax extends Backend
{
$this->code
= -1;
$file
=
$this->request
->file('file');
//判断是否已经存在附件
$sha1
=
$file->hash
();
$uploaded
= model("
attachment
")->where('sha1',
$sha1
)->find();
if(
$uploaded
){
$this->code
= 200;
$this->data
=
$uploaded['url']
;
return;
}
$upload
= Config::get('upload');
preg_match('/(\d+)(\w+)/',
$upload['maxsize']
,
$matches
);
...
...
@@ -230,7 +241,8 @@ class Ajax extends Backend
'imageframes' => 0,
'mimetype' =>
$fileInfo['type']
,
'url' =>
$uploadDir
.
$splInfo->getSaveName
(),
'uploadtime' => time()
'uploadtime' => time(),
'sha1' =>
$sha1
,
);
model("
attachment
")->create(array_filter(
$params
));
$this->code
= 200;
...
...
@@ -328,4 +340,25 @@ class Ajax extends Backend
}
}
/**
* 清空系统缓存
*/
public
function
wipeCache
()
{
$wipe_cache_type
=
[
'TEMP_PATH'
,
'LOG_PATH'
,
'CACHE_PATH'
];
foreach
(
$wipe_cache_type
as
$item
)
{
if
(
$item
==
'LOG_PATH'
)
{
$dirs
=
(
array
)
glob
(
constant
(
$item
)
.
'*'
);
foreach
(
$dirs
as
$dir
)
{
array_map
(
'unlink'
,
(
array
)
glob
(
$dir
.
DIRECTORY_SEPARATOR
.
'*.*'
));
}
array_map
(
'rmdir'
,
$dirs
);
}
else
{
array_map
(
'unlink'
,
(
array
)
glob
(
constant
(
$item
)
.
DIRECTORY_SEPARATOR
.
'*.*'
));
}
}
Cache
::
clear
();
$this
->
success
(
'清空系统缓存成功!'
);
}
}
...
...
application/admin/view/common/header.html
查看文件 @
3cac7c1
...
...
@@ -43,6 +43,12 @@
</li>
<li>
<a
href=
"javascript:;"
data-toggle=
"wipeCache"
title=
"清空缓存"
>
<i
class=
"fa fa-trash"
></i>
</a>
</li>
<li>
<a
href=
"javascript:;"
class=
"dropdown-toggle"
data-toggle=
"dropdown"
><i
class=
"fa fa-language"
></i></a>
<ul
class=
"dropdown-menu"
>
<li
class=
"{$config['language']=='zh-cn'?'active':''}"
>
...
...
application/common/controller/Backend.php
查看文件 @
3cac7c1
...
...
@@ -162,7 +162,7 @@ class Backend extends Controller
$sort
=
$this
->
request
->
get
(
"sort"
,
"id"
);
$order
=
$this
->
request
->
get
(
"order"
,
"DESC"
);
$offset
=
$this
->
request
->
get
(
"offset"
,
0
);
$limit
=
$this
->
request
->
get
(
"limit"
,
1
0
);
$limit
=
$this
->
request
->
get
(
"limit"
,
0
);
$filter
=
json_decode
(
$filter
,
TRUE
);
$op
=
json_decode
(
$op
,
TRUE
);
$filter
=
$filter
?
$filter
:
[];
...
...
application/extra/upload.php
查看文件 @
3cac7c1
...
...
@@ -5,19 +5,19 @@ return [
/**
* 上传地址,如果不使用又拍云,则可以使用/ajax/upload
*/
'uploadurl'
=>
'
http://v0.api.upyun.com/yourbucketname
'
,
'uploadurl'
=>
'
/admin/ajax/upload
'
,
/**
* 又拍云或本机的CDN地址
*/
'cdnurl'
=>
'
http://yourbucketname.b0.upaiyun.com
'
,
'cdnurl'
=>
''
,
/**
* 上传成功后的通知地址
*/
'notifyurl'
=>
'
http://www.yoursite.com/upyun/notify
'
,
'notifyurl'
=>
''
,
/**
* 又拍云Bucket
*/
'bucket'
=>
'
yourbucketname
'
,
'bucket'
=>
''
,
/**
* 生成的policy有效时间
*/
...
...
@@ -29,7 +29,7 @@ return [
/**
* 文件保存格式
*/
'savekey'
=>
'/uploads/
media/
{year}{mon}{day}/{filemd5}{.suffix}'
,
'savekey'
=>
'/uploads/{year}{mon}{day}/{filemd5}{.suffix}'
,
/**
* 最大可上传大小
*/
...
...
public/.htaccess
查看文件 @
3cac7c1
...
...
@@ -4,5 +4,5 @@
RewriteCond
%{REQUEST_FILENAME}
!-d
RewriteCond
%{REQUEST_FILENAME}
!-f
RewriteRule
^(.*)$
index.php
/$1
[QSA,PT,L
]
RewriteRule
^(.*)$
index.php
[L,E=PATH_INFO:$1
]
</IfModule>
...
...
public/assets/js/backend/general/attachment.js
查看文件 @
3cac7c1
...
...
@@ -54,9 +54,13 @@ define(['jquery', 'bootstrap', 'backend', 'form', 'table', 'config'], function (
},
formatter
:
{
thumb
:
function
(
value
,
row
,
index
)
{
console
.
log
(
row
);
//
console.log(row);
if
(
row
.
mimetype
.
indexOf
(
"image"
)
>
-
1
)
{
return
'<a href="'
+
Config
.
upload
.
cdnurl
+
value
+
'" target="_blank"><img src="'
+
Config
.
upload
.
cdnurl
+
value
+
'!/fwfh/50x50" alt=""></a>'
;
if
(
Config
.
upload
.
bucket
.
replace
(
/^
\s
+|
\s
+$/gm
,
''
).
length
===
0
){
return
'<a href="'
+
Config
.
upload
.
cdnurl
+
value
+
'" target="_blank"><img src="'
+
Config
.
upload
.
cdnurl
+
value
+
'" alt="" style="max-height:90px;max-width:120px"></a>'
;
}
else
{
return
'<a href="'
+
Config
.
upload
.
cdnurl
+
value
+
'" target="_blank"><img src="'
+
Config
.
upload
.
cdnurl
+
value
+
'!/fwfh/50x50" alt=""></a>'
;
}
}
else
{
return
'无'
;
}
...
...
public/assets/js/backend/index.js
查看文件 @
3cac7c1
...
...
@@ -47,6 +47,22 @@ define(['jquery', 'bootstrap', 'backend', 'addtabs', 'adminlte', 'validator'], f
e
.
stopPropagation
();
});
//清除缓存
$
(
document
).
on
(
'click'
,
"[data-toggle='wipeCache']"
,
function
()
{
$
.
ajax
({
url
:
'ajax/wipeCache'
,
dataType
:
'json'
,
cache
:
false
,
success
:
function
(
ret
)
{
if
(
ret
.
code
===
1
)
{
Backend
.
api
.
toastr
.
success
(
ret
.
msg
);
}
else
{
Backend
.
api
.
toastr
.
error
(
'清除系统缓存失败!'
);
}
}
});
});
//全屏事件
$
(
document
).
on
(
'click'
,
"[data-toggle='fullscreen']"
,
function
()
{
var
doc
=
document
.
documentElement
;
...
...
public/assets/js/require-table.js
查看文件 @
3cac7c1
...
...
@@ -9,9 +9,14 @@ define(['jquery', 'bootstrap', 'backend', 'config', 'toastr', 'moment', 'bootstr
method
:
'get'
,
toolbar
:
"#toolbar"
,
search
:
true
,
cache
:
false
,
advancedSearch
:
true
,
idTable
:
'advancedTable'
,
showExport
:
true
,
exportDataType
:
"all"
,
exportTypes
:
[
'json'
,
'xml'
,
'csv'
,
'txt'
,
'doc'
,
'excel'
],
pageSize
:
10
,
pageList
:
[
10
,
25
,
50
,
'All'
],
pagination
:
true
,
clickToSelect
:
true
,
showRefresh
:
false
,
...
...
public/assets/js/require-upload.js
查看文件 @
3cac7c1
...
...
@@ -69,11 +69,11 @@ define(['jquery', 'bootstrap', 'backend', 'config', 'plupload'], function ($, un
try
{
var
ret
=
JSON
.
parse
(
info
.
response
);
if
(
ret
.
hasOwnProperty
(
'code'
))
{
ret
.
data
=
ret
.
code
==
200
?
ret
:
ret
.
data
;
ret
.
data
=
ret
.
code
==
200
?
ret
.
data
:
ret
.
data
;
ret
.
code
=
ret
.
code
==
200
?
1
:
ret
.
code
;
var
data
=
ret
.
hasOwnProperty
(
"data"
)
&&
ret
.
data
!=
""
?
ret
.
data
:
null
;
var
msg
=
ret
.
hasOwnProperty
(
"msg"
)
&&
ret
.
msg
!=
""
?
ret
.
msg
:
""
;
$
(
"input[data-plupload-id='"
+
id
+
"-text']"
).
val
(
data
.
url
);
$
(
"input[data-plupload-id='"
+
id
+
"-text']"
).
val
(
data
);
var
afterUpload
=
$
(
"#"
+
id
).
data
(
"after-upload"
);
if
(
afterUpload
&&
typeof
Upload
.
api
.
custom
[
afterUpload
]
==
'function'
)
{
Upload
.
api
.
custom
[
afterUpload
].
call
(
info
,
id
,
data
);
...
...
请
注册
或
登录
后发表评论