mirror of
https://gitee.com/zoujingli/ThinkAdmin.git
synced 2025-04-26 03:16:36 +08:00
调上传插件机制
This commit is contained in:
parent
53e6486514
commit
3ce81eca35
@ -29,6 +29,23 @@ use think\admin\storage\QiniuStorage;
|
|||||||
class Upload extends Controller
|
class Upload extends Controller
|
||||||
{
|
{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 文件上传JS支持
|
||||||
|
* @throws \think\db\exception\DataNotFoundException
|
||||||
|
* @throws \think\db\exception\DbException
|
||||||
|
* @throws \think\db\exception\ModelNotFoundException
|
||||||
|
*/
|
||||||
|
public function index()
|
||||||
|
{
|
||||||
|
$data = ['exts' => []];
|
||||||
|
foreach (explode(',', sysconf('storage.allow_exts')) as $ext) {
|
||||||
|
$data['exts'][$ext] = Storage::mime($ext);
|
||||||
|
}
|
||||||
|
$template = realpath(__DIR__ . '/../../view/api/plugs/upload.js');
|
||||||
|
$data['exts'] = json_encode($data['exts'], JSON_UNESCAPED_UNICODE);
|
||||||
|
return view($template, $data)->contentType('application/x-javascript');
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 上传安全检查
|
* 上传安全检查
|
||||||
* @login true
|
* @login true
|
||||||
|
@ -1,17 +1,15 @@
|
|||||||
define(['md5'], function (SparkMD5) {
|
define(['md5'], function (SparkMD5) {
|
||||||
|
var allowExtsMimes = JSON.parse('{$exts|raw}');
|
||||||
return function (element, InitHandler, UploadedHandler) {
|
return function (element, InitHandler, UploadedHandler) {
|
||||||
var exts = $(element).data('type') || '*';
|
var exts = [], mimes = [];
|
||||||
var uptype = $(element).attr('data-uptype') || '';
|
var uptype = $(element).attr('data-uptype') || '';
|
||||||
var multiple = $(element).attr('data-multiple') > 0;
|
var multiple = $(element).attr('data-multiple') > 0;
|
||||||
|
var types = ($(element).data('type') || '').split(',');
|
||||||
// 检查可以上传的文件后缀
|
for (var i in types) if (allowExtsMimes[types[i]]) {
|
||||||
jQuery.ajax('?s=admin/api.upload/check', {
|
mimes.push(allowExtsMimes[types[i]]), exts.push(types[i]);
|
||||||
method: 'POST', data: {exts: exts, uptype: uptype}, success: function (ret, options) {
|
|
||||||
options = {exts: ret.data.exts, acceptMime: ret.data.mime, data: {}};
|
|
||||||
if (exts.indexOf('*') > -1) delete options.exts, delete options.acceptMime;
|
|
||||||
renderUploader(options)
|
|
||||||
}
|
}
|
||||||
});
|
|
||||||
|
renderUploader({exts: exts.join('|'), acceptMime: mimes.join(',')});
|
||||||
|
|
||||||
// 初始化上传组件
|
// 初始化上传组件
|
||||||
function renderUploader(options, headers, uploader) {
|
function renderUploader(options, headers, uploader) {
|
@ -30,7 +30,7 @@ require.config({
|
|||||||
'md5': ['plugs/jquery/md5.min'],
|
'md5': ['plugs/jquery/md5.min'],
|
||||||
'json': ['plugs/jquery/json.min'],
|
'json': ['plugs/jquery/json.min'],
|
||||||
'michat': ['plugs/michat/michat'],
|
'michat': ['plugs/michat/michat'],
|
||||||
'upload': ['plugs/jquery/uploader'],
|
'upload': ['../admin/api.upload?.js'],
|
||||||
'base64': ['plugs/jquery/base64.min'],
|
'base64': ['plugs/jquery/base64.min'],
|
||||||
'echarts': ['plugs/echarts/echarts.min'],
|
'echarts': ['plugs/echarts/echarts.min'],
|
||||||
'angular': ['plugs/angular/angular.min'],
|
'angular': ['plugs/angular/angular.min'],
|
||||||
|
Loading…
x
Reference in New Issue
Block a user