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