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(); }