\application\admin\controller\Field.php 搜索 media 刪除 欄目就可以添加媒體類型了
打開\application\admin\template\field\addonextitem.htm文件找到判斷媒體的 代碼
<!-- 多媒體類型 start -->
{case value="media"}
<dl class="row">
<dt class="tit">
<label>{if condition="isset($vo['ifrequire']) AND !empty($vo['ifrequire'])"}<em>*</em>{/if}{$vo.title|default=''}</label>
</dt>
<dd class="opt">
<input type="text" class="input-txt" id="{$vo.fieldArr}_{$vo.name|default=''}_media_url" name="{$vo.fieldArr}[{$vo.name|default=''}]" value="{$vo.dfvalue|default=''}" style="width: 400px !important;" >
<input type="file" id="{$vo.fieldArr}_{$vo.name|default=''}_upload_media" on-change="{$vo.fieldArr}_{$vo.name|default=''}_upload_media_20210408(this)" style="display: none;">
{if condition="'qny' == $vo.upload_flag"}
<button type="button" class="layui-btn" id="{$vo.fieldArr}_{$vo.name|default=''}_qny_upload_media" on-click="$('#{$vo.fieldArr}_{$vo.name|default=\'\'}_upload_media').attr('data-type', 'qny').trigger('click');">七牛云上傳</button>
{elseif condition="'oss' == $vo.upload_flag"}
<button type="button" class="layui-btn" id="{$vo.fieldArr}_{$vo.name|default=''}_oss_upload_media" on-click="$('#{$vo.fieldArr}_{$vo.name|default=\'\'}_upload_media').attr('data-type', 'oss').trigger('click');">oss上傳</button>
{elseif condition="'cos' == $vo.upload_flag"}
<button type="button" class="layui-btn" id="{$vo.fieldArr}_{$vo.name|default=''}_cos_upload_media" on-click="$('#{$vo.fieldArr}_{$vo.name|default=\'\'}_upload_media').attr('data-type', 'cos').trigger('click');">cos上傳</button>
{elseif condition="'aws' == $vo.upload_flag"}
<button type="button" class="layui-btn" id="{$vo.fieldArr}_{$vo.name|default=''}_aws_upload_media" on-click="$('#{$vo.fieldArr}_{$vo.name|default=\'\'}_upload_media').attr('data-type', 'aws').trigger('click');">亞馬遜S3上傳</button>
{else}
<button type="button" class="layui-btn" id="{$vo.fieldArr}_{$vo.name|default=''}_local_upload_media" on-click="$('#{$vo.fieldArr}_{$vo.name|default=\'\'}_upload_media').attr('data-type', 'local').trigger('click');">本地上傳</button>
{/if}
<span class="err"></span>
<p class="notic">{$vo.remark|default=''}</p>
</dd>
</dl>
<script>
// 上傳媒體文件
function {$vo.fieldArr}_{$vo.name|default=''}_upload_media_20210408(e){
var data_type = $(e).attr('data-type');
if ('qny' == data_type) {
// 七牛云上傳
{$vo.fieldArr}_{$vo.name|default=''}_qny_upload_media(e);
} else if ('oss' == data_type) {
// OSS上傳
{$vo.fieldArr}_{$vo.name|default=''}_oss_upload_media(e);
} else if ('cos' == data_type) {
// COS上傳
{$vo.fieldArr}_{$vo.name|default=''}_cos_upload_media(e);
} else if ('aws' == data_type) {
// 亞馬遜S3上傳
{$vo.fieldArr}_{$vo.name|default=''}_aws_upload_media(e);
} else {
// 本地上傳
{$vo.fieldArr}_{$vo.name|default=''}_local_upload_media(e);
}
}
function judgeExtMedia(ext) {
var type = '{$vo.ext}';
var extArr = [];
extArr = type.split("|");
var exts = ext.replace(".","");
return extArr.indexOf(exts);
}
// 七牛云
function {$vo.fieldArr}_{$vo.name|default=''}_qny_upload_media(e) {
// 獲取文件路徑名
var file = $(e)[0].files[0];
// 驗證上傳格式
var fileName = file.name;
var fileExt = fileName.substr(fileName.lastIndexOf('.')).toLowerCase();
var ext = judgeExtMedia(fileExt);
if (ext == -1) {
showErrorMsg('僅支持{$vo.ext}格式,可在附件設置中修改');
return false;
}
// 驗證上傳大小
size = parseInt("{$vo.filesize}");
if (file.size > size) {
showErrorMsg('文件大小超過限制,可在附件設置中修改');
return false;
}
// 執行上傳
layer_loading('上傳七牛云');
$.ajax({
type: 'POST',
url: '__ROOT_DIR__/index.php?m=plugins&c=Qiniuyun&a=qiniu_upload',
data: {_ajax: 1},
dataType: "JSON",
success: function(res1) {
if (1 == res1.code) {
var token = res1.data.token;
var formData = new FormData();
formData.append('file', file);
formData.append('token', token);
fileName = res1.data.filePath + fileExt;
formData.append('key', fileName);
$.ajax({
url: res1.data.uphost,
type: 'POST',
dataType: 'JSON',
data: formData,
timeout: 1200000,
cache: false,
processData: false,
contentType: false,
xhr: function () {
myXhr = $.ajaxSettings.xhr();
if (myXhr.upload) {
myXhr.upload.addEventListener('progress', function(e){
var curr = e.loaded;
var total = e.total;
process = parseInt(curr / total * 100);
$("#{$vo.fieldArr}_{$vo.name|default=''}_qny_upload_media").text('上傳中...'+process+"%");
});
}
return myXhr;
},
success: function(res2) {
layer.closeAll();
$("#{$vo.fieldArr}_{$vo.name|default=''}_qny_upload_media").text('上傳成功');
setTimeout(function() {
$('#{$vo.fieldArr}_{$vo.name|default=\'\'}_qny_upload_media').text('七牛云上傳');
}, 2000);
var video_url = res1.data.domain + "/" + res2.key;
$("#{$vo.fieldArr}_{$vo.name|default=''}_media_url").val(video_url);
},
error: function(e) {
layer.closeAll();
showErrorMsg(e.responseText);
return false;
}
});
} else {
layer.closeAll();
showErrorMsg(res1.msg);
}
},
error: function(e) {
layer.closeAll();
showErrorMsg(e.responseText);
}
});
}
//OSS
function {$vo.fieldArr}_{$vo.name|default=''}_oss_upload_media(e) {
// 獲取文件路徑名
var file = $(e)[0].files[0];
// 驗證上傳格式
var fileName = file.name;
var fileExt = fileName.substr(fileName.lastIndexOf('.')).toLowerCase();
var ext = judgeExtMedia(fileExt);
if (ext == -1) {
showErrorMsg('僅支持{$vo.ext}格式,可在附件設置中修改');
return false;
}
// 驗證上傳大小
size = parseInt("{$vo.filesize}");
if (file.size > size) {
showErrorMsg('文件大小超過限制,可在附件設置中修改');
return false;
}
// 執行上傳
layer_loading('上傳阿里云OSS');
$.ajax({
type: 'POST',
url: '__ROOT_DIR__/index.php?m=plugins&c=AliyunOss&a=oss_upload',
data: {_ajax: 1},
dataType: "JSON",
success: function(res1){
if (1 == res1.code){
fileName = res1.data.filePath + fileExt;
//組裝發送數據
var request = new FormData();
request.append("OSSAccessKeyId",res1.data.accessid);
request.append("policy",res1.data.policy);
request.append("Signature",res1.data.signature);
request.append("key",fileName);
request.append("success_action_status",201);
request.append('file', file);
$.ajax({
url : res1.data.host,
data : request,
processData: false,
cache: false,
contentType: false,
dataType: 'xml',
type : 'post',
xhr: function () {
myXhr = $.ajaxSettings.xhr();
if (myXhr.upload) {
myXhr.upload.addEventListener('progress', function(e){
var curr = e.loaded;
var total = e.total;
var process = parseInt(curr / total * 100);
$("#{$vo.fieldArr}_{$vo.name|default=''}_oss_upload_media").text('上傳中...'+process+"%");
});
}
return myXhr;
},
success : function(data) {
layer.closeAll();
var res = $(data).find('PostResponse');
if (res) {
var key = res.find('Key').text();
$("#{$vo.fieldArr}_{$vo.name|default=''}_oss_upload_media").text('上傳成功');
setTimeout(function() {
$('#{$vo.fieldArr}_{$vo.name|default=\'\'}_oss_upload_media').text('oss上傳');
}, 2000);
var video_url = res1.data.domain + "/" + key;
$("#{$vo.fieldArr}_{$vo.name|default=''}_media_url").val(video_url);
} else {
$("#{$vo.fieldArr}_{$vo.name|default=''}_oss_upload_media").text('上傳失敗');
setTimeout(function() {
$('#{$vo.fieldArr}_{$vo.name|default=\'\'}_oss_upload_media').text('oss上傳');
}, 2000);
}
},
error : function(e) {
layer.closeAll();
console.log(e.responseText);
}
});
} else {
layer.closeAll();
showErrorMsg(res1.msg);
}
},
error: function(e) {
layer.closeAll();
showErrorMsg(e.responseText);
}
});
}
//COS
function {$vo.fieldArr}_{$vo.name|default=''}_cos_upload_media(e) {
// 獲取文件路徑名
var file = $(e)[0].files[0];
// 驗證上傳格式
var fileName = file.name;
var fileExt = fileName.substr(fileName.lastIndexOf('.')).toLowerCase();
var ext = judgeExtMedia(fileExt);
if (ext == -1) {
showErrorMsg('僅支持{$vo.ext}格式,可在附件設置中修改');
return false;
}
// 驗證上傳大小
size = parseInt("{$vo.filesize}");
if (file.size > size) {
showErrorMsg('文件大小超過限制,可在附件設置中修改');
return false;
}
// 上傳參數
var formData = new FormData();
formData.append('file', file);
formData.append('file_ext', fileExt);
// 執行上傳
$.ajax({
type: 'post',
url: '__ROOT_DIR__/index.php?m=plugins&c=Cos&a=cos_upload&_ajax=1',
data: formData,
contentType: false,
processData: false,
dataType: 'json',
xhr: function () {
myXhr = $.ajaxSettings.xhr();
if (myXhr.upload) {
myXhr.upload.addEventListener('progress', function(e){
var curr = e.loaded;
var total = e.total;
process = parseInt(curr / total * 100);
if (100 == process) {
process = 99;
layer_loading('上傳騰訊云');
}
$("#{$vo.fieldArr}_{$vo.name|default=''}_cos_upload_media").text('上傳中...'+process+"%");
});
}
return myXhr;
},
success: function(res) {
layer.closeAll();
if (1 == res.code) {
$("#{$vo.fieldArr}_{$vo.name|default=''}_cos_upload_media").text('上傳成功');
$("#{$vo.fieldArr}_{$vo.name|default=''}_media_url").val(res.data.url);
} else {
$("#{$vo.fieldArr}_{$vo.name|default=''}_cos_upload_media").text('上傳失敗');
}
setTimeout(function() {
$('#{$vo.fieldArr}_{$vo.name|default=\'\'}_cos_upload_media').text('cos上傳');
}, 2000);
},
error: function(e) {
layer.closeAll();
showErrorMsg(e.responseText);
}
});
}
//亞馬遜S3
function {$vo.fieldArr}_{$vo.name|default=''}_aws_upload_media(e) {
// 獲取文件路徑名
var file = $(e)[0].files[0];
// 驗證上傳格式
var fileName = file.name;
var fileExt = fileName.substr(fileName.lastIndexOf('.')).toLowerCase();
var ext = judgeExtMedia(fileExt);
if (ext == -1) {
showErrorMsg('僅支持{$vo.ext}格式,可在附件設置中修改');
return false;
}
// 驗證上傳大小
size = parseInt("{$vo.filesize}");
if (file.size > size) {
showErrorMsg('文件大小超過限制,可在附件設置中修改');
return false;
}
// 上傳參數
var formData = new FormData();
formData.append('file', file);
formData.append('file_ext', fileExt);
// 執行上傳
$.ajax({
type: 'post',
url: '__ROOT_DIR__/index.php?m=plugins&c=Aws&a=aws_upload&_ajax=1',
data: formData,
contentType: false,
processData: false,
dataType: 'json',
xhr: function () {
myXhr = $.ajaxSettings.xhr();
if (myXhr.upload) {
myXhr.upload.addEventListener('progress', function(e){
var curr = e.loaded;
var total = e.total;
process = parseInt(curr / total * 100);
if (100 == process) {
process = 99;
layer_loading('上傳騰訊云');
}
$("#{$vo.fieldArr}_{$vo.name|default=''}_aws_upload_media").text('上傳中...'+process+"%");
});
}
return myXhr;
},
success: function(res) {
layer.closeAll();
if (1 == res.code) {
$("#{$vo.fieldArr}_{$vo.name|default=''}_aws_upload_media").text('上傳成功');
$("#{$vo.fieldArr}_{$vo.name|default=''}_media_url").val(res.data.url);
} else {
$("#{$vo.fieldArr}_{$vo.name|default=''}_aws_upload_media").text('上傳失敗');
}
setTimeout(function() {
$('#{$vo.fieldArr}_{$vo.name|default=\'\'}_aws_upload_media').text('cos上傳');
}, 2000);
},
error: function(e) {
layer.closeAll();
showErrorMsg(e.responseText);
}
});
}
// 本地上傳
function {$vo.fieldArr}_{$vo.name|default=''}_local_upload_media(e){
// 獲取文件路徑名
var file = $(e)[0].files[0];
// 驗證上傳格式
var fileName = file.name;
var fileExt = fileName.substr(fileName.lastIndexOf('.')).toLowerCase();
var ext = judgeExtMedia(fileExt);
if (ext == -1) {
showErrorMsg('僅支持{$vo.ext}格式,可在附件設置中修改');
return false;
}
// 驗證上傳大小
size = parseInt("{$vo.filesize}");
if (file.size > size) {
showErrorMsg('文件大小超過限制,可在附件設置中修改');
return false;
}
// 定義上傳數據
var formData = new FormData();
formData.append('file', file);
// 執行上傳
layer_loading('上傳本地');
$.ajax({
type: 'post',
url : "{:url('Ueditor/upVideo', ['savepath'=>'media'])}",
data: formData,
contentType: false,
processData: false,
dataType: 'json',
xhr: function () {
myXhr = $.ajaxSettings.xhr();
if (myXhr.upload) {
myXhr.upload.addEventListener('progress', function(e){
var curr = e.loaded;
var total = e.total;
process = parseInt(curr / total * 100);
$("#{$vo.fieldArr}_{$vo.name|default=''}_local_upload_media").html('上傳中...'+process+"%");
});
}
return myXhr;
},
success: function (res) {
layer.closeAll();
if ("SUCCESS" == res.state) {
$("#{$vo.fieldArr}_{$vo.name|default=''}_local_upload_media").html('上傳成功');
setTimeout(function() {
$('#{$vo.fieldArr}_{$vo.name|default=\'\'}_local_upload_media').html('本地上傳');
}, 2000);
$("#{$vo.fieldArr}_{$vo.name|default=''}_media_url").val(res.url);
} else {
res = JSON.parse(res);
showErrorMsg(res.state);
}
}
});
}
</script>
{/case}
<!-- 多媒體類型 end -->
打開 \application\admin\template\field\addonitem.htm 找到一個{/case}直接粘貼到他后面即可
