std_name='' std_id='' accessid = '' accesskey = '' host = '' policyBase64 = '' signature = '' callbackbody = '' filename = '' upfilename = '' key = '' expire = 0 g_object_name = '' g_object_name_type = 'local_name' //使用本地名 max_file_size=0 aspect_num='' now = timestamp = Date.parse(new Date()) / 1000; type = getQueryVariable("type"); var a = send_request( '../../vod/status.htm?aspect_id='+ getQueryVariable("id") + "&type=" + type); if (a.errorCode=='1102') window.location = '../'; if (a.errorCode=='1901') { document.getElementById('h').innerText=a.errorMsg; document.getElementById('selectfiles').style.display="none"; } else if(a.errorCode=='20000') { debugger; document.getElementById('h').innerHTML ="上传成功"; document.getElementById('selectfiles').style.display="none"; } else { debugger; max_file_size = a.map.max_file_size; std_name = a.map.std_name; std_id = a.map.std_id; document.getElementById('h').innerHTML ="请上传文件(最大"+max_file_size+"MB)
请认真核对。
未显示上传成功前请不要离开本页面,切勿切屏、息屏。"; } function send_request(serverUrl) { var xmlhttp = null; if (window.XMLHttpRequest){ xmlhttp=new XMLHttpRequest(); } else if (window.ActiveXObject){ xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } if (xmlhttp!=null){ // serverUrl是 用户获取 '签名和Policy' 等信息的应用服务器的URL,请将下面的IP和Port配置为您自己的真实信息。 //serverUrl = 'http://10072.hmsoft.cn/bk/vod/postkey.htm' xmlhttp.open( "GET", serverUrl, false ); xmlhttp.send( null ); return eval ("(" + 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) { var obj = send_request( '../../vod/postkey.htm?aspect_id='+ getQueryVariable("id")+'&std_id='+std_id+"&type=" + getQueryVariable("type")); if(obj['success']!=null){ console.log(obj['errorMsg']); alert(obj['errorMsg']); if (a.errorCode=='1102') window.location = '../'; return false; } host = obj['host'] policyBase64 = obj['policy'] accessid = obj['accessid'] signature = obj['signature'] expire = parseInt(obj['expire']) callbackbody = obj['callback'] key = obj['dir'] aspect_num = obj['aspect_num'] return true; } return false; }; function random_string(len) {   varlen = 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 get_name(filename) { pos = filename.lastIndexOf('.') f = '' if (pos != -1) { f = filename.substring(0,pos) } return f; } 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 } else if (g_object_name_type == 'upfilename') { suffix = get_suffix(filename) g_object_name = key + upfilename + 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 } } function set_upload_param(up, filename, ret) { if (ret == false) { ret = get_signature(filename) //判断 } if (ret){ 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, }; up.setOption({ 'url': host, 'multipart_params': new_multipart_params }); up.start(); } } function getQueryVariable(variable) { var query = window.location.search.substring(1); var vars = query.split("&"); for (var i=0;i' + file.name + ' (' + plupload.formatSize(file.size) + ')' +'
' +''; }); set_upload_param(up, '', false); }, BeforeUpload: function(up, file) { set_upload_param(up, file.name, true); }, UploadProgress: function(up, file) { var d = document.getElementById(file.id); 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) { document.getElementById(file.id).getElementsByTagName('b')[0].innerHTML = '文件已经上传成功'; document.getElementById('selectfiles').style.display="none"; } else if (info.status == 203) { document.getElementById(file.id).getElementsByTagName('b')[0].innerHTML = '上传成功,但是oss访问用户设置的上传回调服务器失败,失败原因是:' + info.response; } else { document.getElementById(file.id).getElementsByTagName('b')[0].innerHTML = info.response; } }, Error: function(up, err) { debugger; if (err.code == -600) { document.getElementById('console').appendChild(document.createTextNode("\n上传的文件太大了,最大允许上传"+max_file_size+"MB")); } else if (err.code == -601) { document.getElementById('console').appendChild(document.createTextNode("\n选择的文件类型不正确")); } else if (err.code == -602) { document.getElementById('console').appendChild(document.createTextNode("\n选择文件重复")); } else { document.getElementById('console').appendChild(document.createTextNode("\nError xml:" + err.response)); } } } }); uploader.init(); //console.log( uploader.settings.filters.max_file_size);