accessid = ''
accesskey = ''
host = ''
policyBase64 = ''
signature = ''
callbackbody = ''
filename = ''
key = ''
expire = 0
g_object_name = ''
g_object_name_type = ''
now = timestamp = Date.parse(new Date()) / 1000;
function send_request() {
var xmlhttp = null;
if (window.XMLHttpRequest) {
xmlhttp = new XMLHttpRequest();
} else if (window.ActiveXObject) {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
if (xmlhttp != null) {
let cate_name = document.getElementById('category_name').value;
if (cate_name.substr(0, 5) == "Train"){
cate_name ="Train";
}
// serverUrl是 用户获取 '签名和Policy' 等信息的应用服务器的URL,请将下面的IP和Port配置为您自己的真实信息。
serverUrl = window.location.protocol + "//" + window.location.host + '/api/uploadoss/oss_signature.html?cate=' + cate_name;
xmlhttp.open("GET", serverUrl, false);
xmlhttp.send(null);
return xmlhttp.responseText
} else {
alert("Your browser does not support XMLHTTP.");
}
};
function check_object_radio() {
var tt = document.getElementsByName('myradio');
for (var i = 0; i < tt.length; i++) {
if (tt[i].checked) {
g_object_name_type = tt[i].value;
break;
}
}
}
function get_signature() {
// 可以判断当前expire是否超过了当前时间, 如果超过了当前时间, 就重新取一下,3s 作为缓冲。
now = timestamp = Date.parse(new Date()) / 1000;
if (expire < now + 3) {
body = send_request()
var obj = eval("(" + body + ")");
console.log(obj)
host = obj['host']
policyBase64 = obj['policy']
accessid = obj['accessid']
signature = obj['signature']
expire = parseInt(obj['expire'])
callbackbody = obj['callback']
key = obj['dir']
return true;
}
return false;
};
function random_string(len) {
len = len || 32;
var chars = 'ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678';
var maxPos = chars.length;
var pwd = '';
for (i = 0; i < len; i++) {
pwd += chars.charAt(Math.floor(Math.random() * maxPos));
}
return pwd;
}
function get_suffix(filename) {
pos = filename.lastIndexOf('.')
suffix = ''
if (pos != -1) {
suffix = filename.substring(pos)
}
return suffix;
}
function calculate_object_name(filename) {
/* if (g_object_name_type == 'local_name')
{
g_object_name += "${filename}"
}
else if (g_object_name_type == 'random_name')
{
suffix = get_suffix(filename)
g_object_name = key + random_string(10) + suffix
}*/
suffix = get_suffix(filename)
g_object_name = key + random_string(10) + suffix
return ''
}
function get_uploaded_object_name(filename) {
/* if (g_object_name_type == 'local_name')
{
tmp_name = g_object_name
tmp_name = tmp_name.replace("${filename}", filename);
return tmp_name
}
else if(g_object_name_type == 'random_name')
{
return g_object_name
}*/
return g_object_name
}
function set_upload_param(up, filename, ret) {
if (ret == false) {
ret = get_signature()
}
g_object_name = key;
if (filename != '') {
suffix = get_suffix(filename)
calculate_object_name(filename)
}
new_multipart_params = {
'key': g_object_name,
'policy': policyBase64,
'OSSAccessKeyId': accessid,
'success_action_status': '200', //让服务端返回200,不然,默认会返回204
'callback': callbackbody,
'signature': signature,
'b':'bb',
};
console.log(host)
console.log(new_multipart_params)
up.setOption({
'url': host,
'multipart_params': new_multipart_params
});
up.start();
}
//上传视频,每日发圈 不同的页面限制不同的内容
var file_cate_name = document.getElementById('category_name').value;
if (file_cate_name == 'Video') {
var mime_types = [{
title: "Video files",
extensions: 'mp4'
}];
var max_file_size = '500mb';
} else if (file_cate_name == 'material') {
var mime_types = [{
title: "Video files",
extensions: 'mp4'
},
{
title: "Image files",
extensions: "jpg,jpeg,png"
}
];
max_file_size = '500mb';
} else if (file_cate_name == 'dailyWechatArticle') {
var mime_types = [{
title: "Video files",
extensions: 'mp4'
}];
max_file_size = '100mb';
} else if (file_cate_name == 'Talkskill') {
var mime_types = [{
title: "Video",
extensions: 'mp4'
}];
max_file_size = '500mb';
} else if (file_cate_name == 'evidence') {//客户见证上传视频
var mime_types = [{
title: "Video",
extensions: 'mp4'
}];
max_file_size = '300mb';
} else if (file_cate_name == 'company_strength') {//公司实力
var mime_types = [{
title: "Video",
extensions: 'mp4'
}];
max_file_size = '285mb';
} else if (file_cate_name == 'Construction') {//公司实力
var mime_types = [{
title: "Video",
extensions: 'mp4'
}];
max_file_size = '285mb';
}
if (file_cate_name.substr(0, 5) == "Train"){
var file_cate_name1 = document.getElementById('category_name1').value;
var file_cate_name2 = document.getElementById('category_name2').value;
var file_cate_name3 = document.getElementById('category_name3').value;
if (file_cate_name1 == 'Trainvideo') {
var mime_types = [{
title: "Video",
extensions: 'mp4'
}];
max_file_size = '286mb';
var uploader1 = new plupload.Uploader({
runtimes: 'html5,flash,silverlight,html4',
browse_button: 'selectfiles',
container: document.getElementById('container'),
flash_swf_url: 'lib/plupload-2.1.2/js/Moxie.swf',
silverlight_xap_url: 'lib/plupload-2.1.2/js/Moxie.xap',
url: 'https://oss.aliyuncs.com',
multi_selection: false,
multiple_queues: false,
//只允许上传图片,视频,pdf和zip文件
filters: {
mime_types: mime_types,
max_file_size: max_file_size, //最大上传的文件
prevent_duplicates: true //不允许选取重复文件
},
/* filters: {
mime_types : [
{ title : "Video files", extensions : cate_name },
{ title : "Image files", extensions : "jpg,gif,png,bmp" },
{ title : "Pdf files", extensions : "pdf" },
{ title : "Zip files", extensions : "zip,rar" }
],
max_file_size : '250mb', //最大只能上传250mb的文件
prevent_duplicates : true //不允许选取重复文件
},*/
init: {
PostInit: function () {
if (document.getElementById('symbshowed').value == '') {
document.getElementById('symbshowed').innerHTML = '';
}
document.getElementById('ossfile').innerHTML = '';
document.getElementById('postfiles').onclick = function () {
set_upload_param(uploader1, '', false);
return false;
};
},
FilesAdded: function (up, files, info) {
if (up.files.length > 1) {
up.files = files = [up.files[0]];
if (up.files.length == 1) {
layer.msg("只能上传一个文件!");
}
return;
}
plupload.each(files, function (file) {
document.getElementById('symbshowed').innerHTML = '';
document.getElementById('ossfile').innerHTML = '
' + file.name + ' (' + plupload.formatSize(file.size) + ')
' +
'
' +
'
';
});
},
BeforeUpload: function (up, file) {
check_object_radio();
set_upload_param(up, file.name, true);
},
UploadProgress: function (up, file) {
var d = document.getElementById(file.id);
if (d) {
d.getElementsByTagName('b')[0].innerHTML = '' + file.percent + "%";
var prog = d.getElementsByTagName('div')[0];
var progBar = prog.getElementsByTagName('div')[0]
progBar.style.width = 2 * file.percent + 'px';
progBar.setAttribute('aria-valuenow', file.percent);
}
},
FileUploaded: function (up, file, info) {
if (info.status == 200) {
var finalname = get_uploaded_object_name(file.name);
document.getElementById(file.id).getElementsByTagName('b')[0].innerHTML = '上传成功';
var val = document.getElementById("fileuri").value;
if (val == '') {
document.getElementById('fileuri').value = finalname;
} else {
document.getElementById('fileuri').value = val + ',' + finalname;
}
if (finalname.indexOf('mp4') > 0) {
document.getElementById('symbshowed').innerHTML = '';
}
if (finalname.indexOf('jpg') > 0 || finalname.indexOf('jpeg') > 0 || finalname.indexOf('png') > 0) {
document.getElementById('symbshowed').innerHTML = '
';
}
if (finalname.indexOf('mp3') > 0) {
document.getElementById('symbshowed').innerHTML = '';
}
if (finalname.indexOf('m4a') > 0) {
document.getElementById('symbshowed').innerHTML = '';
}
if (finalname.indexOf('pdf') > 0) {
document.getElementById('symbshowed').innerHTML = '';
}
if (file_cate_name.substr(0, 5) == 'Train') {
let wzhfile = document.getElementById('trainfilediv');
if (!!wzhfile){
document.getElementById('trainfilediv').style.display = 'none';
}
}
} else if (info.status == 203) {
document.getElementById(file.id).getElementsByTagName('b')[0].innerHTML = '上传到OSS成功,但是oss访问用户设置的上传回调服务器失败,失败原因是:' + info.response;
} else {
document.getElementById(file.id).getElementsByTagName('b')[0].innerHTML = info.response;
}
},
Error: function (up, err) {
if (err.code == -600) {
layer.msg('选择的文件大小超出限制');
} else if (err.code == -601) {
layer.msg('选择的文件格式不对');
} else if (err.code == -602) {
layer.msg('请勿重复上传文件');
} else {
layer.msg('错误:' + err.response);
}
}
}
});
uploader1.init();
}
if (file_cate_name2 == 'Trainaudio') {
var mime_types = [{
title: "Audio",
extensions: 'mp3'
}, {
title: "Audio",
extensions: 'm4a'
}];
max_file_size = '286mb';
var uploader3 = new plupload.Uploader({
runtimes: 'html5,flash,silverlight,html4',
browse_button: 'selectfiles2',
container: document.getElementById('container'),
flash_swf_url: 'lib/plupload-2.1.2/js/Moxie.swf',
silverlight_xap_url: 'lib/plupload-2.1.2/js/Moxie.xap',
url: 'https://oss.aliyuncs.com',
multi_selection: false,
multiple_queues: false,
//只允许上传图片,视频,pdf和zip文件
filters: {
mime_types: mime_types,
max_file_size: max_file_size, //最大上传的文件
prevent_duplicates: true //不允许选取重复文件
},
init: {
PostInit: function () {
if (document.getElementById('symbshowed').value == '') {
document.getElementById('symbshowed').innerHTML = '';
}
document.getElementById('ossfile').innerHTML = '';
document.getElementById('postfiles2').onclick = function () {
set_upload_param(uploader3, '', false);
return false;
};
},
FilesAdded: function (up, files, info) {
if (up.files.length > 1) {
up.files = files = [up.files[0]];
if (up.files.length == 1) {
layer.msg("只能上传一个文件!");
}
return;
}
plupload.each(files, function (file) {
document.getElementById('symbshowed').innerHTML = '';
document.getElementById('ossfile').innerHTML = '' + file.name + ' (' + plupload.formatSize(file.size) + ')
' +
'
' +
'
';
});
},
BeforeUpload: function (up, file) {
check_object_radio();
set_upload_param(up, file.name, true);
},
UploadProgress: function (up, file) {
var d = document.getElementById(file.id);
if (d) {
d.getElementsByTagName('b')[0].innerHTML = '' + file.percent + "%";
var prog = d.getElementsByTagName('div')[0];
var progBar = prog.getElementsByTagName('div')[0]
progBar.style.width = 2 * file.percent + 'px';
progBar.setAttribute('aria-valuenow', file.percent);
}
},
FileUploaded: function (up, file, info) {
if (info.status == 200) {
var finalname = get_uploaded_object_name(file.name);
document.getElementById(file.id).getElementsByTagName('b')[0].innerHTML = '上传成功';
var val = document.getElementById("fileuri").value;
if (val == '') {
document.getElementById('fileuri').value = finalname;
} else {
document.getElementById('fileuri').value = val + ',' + finalname;
}
if (finalname.indexOf('mp4') > 0) {
document.getElementById('symbshowed').innerHTML = '';
}
if (finalname.indexOf('jpg') > 0 || finalname.indexOf('jpeg') > 0 || finalname.indexOf('png') > 0) {
document.getElementById('symbshowed').innerHTML = '
';
}
if (finalname.indexOf('mp3') > 0) {
document.getElementById('symbshowed').innerHTML = '';
}
if (finalname.indexOf('m4a') > 0) {
document.getElementById('symbshowed').innerHTML = '';
}
if (finalname.indexOf('pdf') > 0) {
document.getElementById('symbshowed').innerHTML = '';
}
if (file_cate_name.substr(0, 5) == 'Train') {
let wzhfile = document.getElementById('trainfilediv');
if (!!wzhfile) {
document.getElementById('trainfilediv').style.display = 'none';
}
}
} else if (info.status == 203) {
document.getElementById(file.id).getElementsByTagName('b')[0].innerHTML = '上传到OSS成功,但是oss访问用户设置的上传回调服务器失败,失败原因是:' + info.response;
} else {
document.getElementById(file.id).getElementsByTagName('b')[0].innerHTML = info.response;
}
},
Error: function (up, err) {
if (err.code == -600) {
layer.msg('选择的文件大小超出限制');
} else if (err.code == -601) {
layer.msg('选择的文件格式不对');
} else if (err.code == -602) {
layer.msg('请勿重复上传文件');
} else {
layer.msg('错误:' + err.response);
}
}
}
});
uploader3.init();
}
if (file_cate_name3 == 'Trainpdf') {
var mime_types = [{
title: "pdf",
extensions: 'pdf'
}];
max_file_size = '286mb';
var uploader4 = new plupload.Uploader({
runtimes: 'html5,flash,silverlight,html4',
browse_button: 'selectfiles3',
container: document.getElementById('container'),
flash_swf_url: 'lib/plupload-2.1.2/js/Moxie.swf',
silverlight_xap_url: 'lib/plupload-2.1.2/js/Moxie.xap',
url: 'https://oss.aliyuncs.com',
multi_selection: false,
multiple_queues: false,
//只允许上传图片,视频,pdf和zip文件
filters: {
mime_types: mime_types,
max_file_size: max_file_size, //最大上传的文件
prevent_duplicates: true //不允许选取重复文件
},
/* filters: {
mime_types : [
{ title : "Video files", extensions : cate_name },
{ title : "Image files", extensions : "jpg,gif,png,bmp" },
{ title : "Pdf files", extensions : "pdf" },
{ title : "Zip files", extensions : "zip,rar" }
],
max_file_size : '250mb', //最大只能上传250mb的文件
prevent_duplicates : true //不允许选取重复文件
},*/
init: {
PostInit: function () {
if (document.getElementById('symbshowed').value == '') {
document.getElementById('symbshowed').innerHTML = '';
}
document.getElementById('ossfile').innerHTML = '';
document.getElementById('postfiles3').onclick = function () {
set_upload_param(uploader4, '', false);
return false;
};
},
FilesAdded: function (up, files, info) {
if (up.files.length > 1) {
up.files = files = [up.files[0]];
if (up.files.length == 1) {
layer.msg("只能上传一个文件!");
}
return;
}
plupload.each(files, function (file) {
document.getElementById('symbshowed').innerHTML = '';
document.getElementById('ossfile').innerHTML = '' + file.name + ' (' + plupload.formatSize(file.size) + ')
' +
'
' +
'
';
});
},
BeforeUpload: function (up, file) {
check_object_radio();
set_upload_param(up, file.name, true);
},
UploadProgress: function (up, file) {
var d = document.getElementById(file.id);
if (d) {
d.getElementsByTagName('b')[0].innerHTML = '' + file.percent + "%";
var prog = d.getElementsByTagName('div')[0];
var progBar = prog.getElementsByTagName('div')[0]
progBar.style.width = 2 * file.percent + 'px';
progBar.setAttribute('aria-valuenow', file.percent);
}
},
FileUploaded: function (up, file, info) {
if (info.status == 200) {
var finalname = get_uploaded_object_name(file.name);
document.getElementById(file.id).getElementsByTagName('b')[0].innerHTML = '上传成功';
var val = document.getElementById("fileuri").value;
if (val == '') {
document.getElementById('fileuri').value = finalname;
} else {
document.getElementById('fileuri').value = val + ',' + finalname;
}
if (finalname.indexOf('mp4') > 0) {
document.getElementById('symbshowed').innerHTML = '';
}
if (finalname.indexOf('jpg') > 0 || finalname.indexOf('jpeg') > 0 || finalname.indexOf('png') > 0) {
document.getElementById('symbshowed').innerHTML = '
';
}
if (finalname.indexOf('mp3') > 0) {
document.getElementById('symbshowed').innerHTML = '';
}
if (finalname.indexOf('m4a') > 0) {
document.getElementById('symbshowed').innerHTML = '';
}
if (finalname.indexOf('pdf') > 0) {
document.getElementById('symbshowed').innerHTML = '';
}
let wzhfile = document.getElementById('trainfilediv');
if (!!wzhfile) {
document.getElementById('trainfilediv').style.display = 'none';
}
} else if (info.status == 203) {
document.getElementById(file.id).getElementsByTagName('b')[0].innerHTML = '上传到OSS成功,但是oss访问用户设置的上传回调服务器失败,失败原因是:' + info.response;
} else {
document.getElementById(file.id).getElementsByTagName('b')[0].innerHTML = info.response;
}
},
Error: function (up, err) {
if (err.code == -600) {
layer.msg('选择的文件大小超出限制');
} else if (err.code == -601) {
layer.msg('选择的文件格式不对');
} else if (err.code == -602) {
layer.msg('请勿重复上传文件');
} else {
layer.msg('错误:' + err.response);
}
}
}
});
uploader4.init();
}
}else{
var uploader = new plupload.Uploader({
runtimes: 'html5,flash,silverlight,html4',
browse_button: 'selectfiles',
container: document.getElementById('container'),
flash_swf_url: 'lib/plupload-2.1.2/js/Moxie.swf',
silverlight_xap_url: 'lib/plupload-2.1.2/js/Moxie.xap',
url: 'https://oss.aliyuncs.com',
multi_selection: false,
multiple_queues: false,
//只允许上传图片,视频,pdf和zip文件
filters: {
mime_types: mime_types,
max_file_size: max_file_size, //最大上传的文件
prevent_duplicates: true //不允许选取重复文件
},
/* filters: {
mime_types : [
{ title : "Video files", extensions : cate_name },
{ title : "Image files", extensions : "jpg,gif,png,bmp" },
{ title : "Pdf files", extensions : "pdf" },
{ title : "Zip files", extensions : "zip,rar" }
],
max_file_size : '250mb', //最大只能上传250mb的文件
prevent_duplicates : true //不允许选取重复文件
},*/
init: {
PostInit: function () {
if (document.getElementById('symbshowed').value == '') {
document.getElementById('symbshowed').innerHTML = '';
}
document.getElementById('ossfile').innerHTML = '';
document.getElementById('postfiles').onclick = function () {
set_upload_param(uploader, '', false);
return false;
};
},
FilesAdded: function (up, files, info) {
if (up.files.length > 1) {
up.files = files = [up.files[0]];
if (up.files.length == 1) {
layer.msg("只能上传一个文件!");
}
return;
}
plupload.each(files, function (file) {
if (document.getElementById('ossfile').innerHTML === '') {
document.getElementById('symbshowed').innerHTML = '';
document.getElementById('ossfile').innerHTML = '' + file.name + ' (' + plupload.formatSize(file.size) + ')
' +
'
' +
'
';
}
});
},
BeforeUpload: function (up, file) {
check_object_radio();
set_upload_param(up, file.name, true);
},
UploadProgress: function (up, file) {
var d = document.getElementById(file.id);
if (d) {
d.getElementsByTagName('b')[0].innerHTML = '' + file.percent + "%";
var prog = d.getElementsByTagName('div')[0];
var progBar = prog.getElementsByTagName('div')[0]
progBar.style.width = 2 * file.percent + 'px';
progBar.setAttribute('aria-valuenow', file.percent);
}
},
FileUploaded: function (up, file, info) {
if (info.status == 200) {
var finalname = get_uploaded_object_name(file.name);
document.getElementById(file.id).getElementsByTagName('b')[0].innerHTML = '上传成功';
var val = document.getElementById("fileuri").value;
if (val == '') {
document.getElementById('fileuri').value = finalname;
} else {
document.getElementById('fileuri').value = val + ',' + finalname;
}
if (finalname.indexOf('mp4') > 0) {
document.getElementById('symbshowed').innerHTML = '';
}
if (finalname.indexOf('jpg') > 0 || finalname.indexOf('jpeg') > 0 || finalname.indexOf('png') > 0) {
document.getElementById('symbshowed').innerHTML = '
';
}
if (finalname.indexOf('mp3') > 0) {
document.getElementById('symbshowed').innerHTML = '';
}
if (finalname.indexOf('m4a') > 0) {
document.getElementById('symbshowed').innerHTML = '';
}
if (finalname.indexOf('pdf') > 0) {
document.getElementById('symbshowed').innerHTML = '';
}
} else if (info.status == 203) {
document.getElementById(file.id).getElementsByTagName('b')[0].innerHTML = '上传到OSS成功,但是oss访问用户设置的上传回调服务器失败,失败原因是:' + info.response;
} else {
document.getElementById(file.id).getElementsByTagName('b')[0].innerHTML = info.response;
}
},
Error: function (up, err) {
if (err.code == -600) {
layer.msg('选择的文件大小超出限制');
} else if (err.code == -601) {
layer.msg('选择的文件格式不对');
} else if (err.code == -602) {
layer.msg('请勿重复上传文件');
} else {
layer.msg('错误:' + err.response);
}
}
}
});
uploader.init();
}