You've already forked qlg.frontend
Init Repo
This commit is contained in:
306
js/upload1.js
Normal file
306
js/upload1.js
Normal file
@ -0,0 +1,306 @@
|
||||
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) {
|
||||
serverUrl = '../php/get.php'
|
||||
xmlhttp.open("GET", serverUrl, false);
|
||||
xmlhttp.send(null);
|
||||
return xmlhttp.responseText
|
||||
} else {
|
||||
mui.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 + ")");
|
||||
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
|
||||
}
|
||||
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()
|
||||
}
|
||||
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();
|
||||
}
|
||||
var html = '';
|
||||
for(i = 0; i < 3; i++) {
|
||||
html += '<div class="up_out"><div id="ossfile' + i + '" class="ossfile clearfix" data-num="' + i + '">你的浏览器不支持flash,Silverlight或者HTML5!</div><div id="container' + i + '" class="container" data-num="' + i + '"><a id="selectfiles' + i + '" href="javascript:void(0);" class="btn selectfiles" data-num="' + i + '">选择文件</a></div></div>'
|
||||
}
|
||||
|
||||
$('.con').html(html)
|
||||
|
||||
var btnArr = [];
|
||||
|
||||
$('.selectfiles').each(function(num) {
|
||||
btnArr.push($(this).attr('id'));
|
||||
})
|
||||
|
||||
$.each(btnArr, function(i, n) {
|
||||
var self = this.toString();
|
||||
var that = document.getElementById(this);
|
||||
var uploader = new plupload.Uploader({
|
||||
runtimes: 'html5,flash,silverlight,html4',
|
||||
browse_button: self,
|
||||
//multi_selection: false,
|
||||
// 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: 'http://oss.aliyuncs.com',
|
||||
|
||||
filters: {
|
||||
mime_types: [ //只允许上传图片和zip,rar文件
|
||||
{
|
||||
title: "Image files",
|
||||
extensions: "jpg,gif,png,bmp"
|
||||
},
|
||||
{
|
||||
title: "Zip files",
|
||||
extensions: "zip,rar"
|
||||
}
|
||||
],
|
||||
max_file_size: '10mb', //最大只能上传10mb的文件
|
||||
prevent_duplicates: true //不允许选取重复文件
|
||||
},
|
||||
|
||||
init: {
|
||||
PostInit: function() {
|
||||
document.getElementsByClassName('ossfile')[i].innerHTML = '';
|
||||
// document.getElementById('postfiles').onclick = function() {
|
||||
// set_upload_param(uploader, '', false);
|
||||
// return false;
|
||||
// };
|
||||
uploader.bind('FilesAdded', function() {
|
||||
set_upload_param(uploader, '', false);
|
||||
return false;
|
||||
});
|
||||
},
|
||||
|
||||
FilesAdded: function(up, files) {
|
||||
plupload.each(files, function(file) {
|
||||
document.getElementsByClassName('ossfile')[i].innerHTML += '<div class="files_out" id="' + file.id + '"><b></b>' +
|
||||
'<div class="progress"><div class="progress-bar" style="width: 60px"></div></div>' +
|
||||
'</div>';
|
||||
});
|
||||
},
|
||||
|
||||
BeforeUpload: function(up, file) {
|
||||
check_object_radio();
|
||||
set_upload_param(up, file.name, true);
|
||||
},
|
||||
|
||||
UploadProgress: function(up, file) {
|
||||
var d = document.getElementById(file.id);
|
||||
d.getElementsByTagName('b')[0].innerHTML = '<span>' + file.percent + "%</span>";
|
||||
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 = '<img data-src="' + get_uploaded_object_name(file.name) + '" src="http://heyuanhui.oss-cn-qingdao.aliyuncs.com/' + get_uploaded_object_name(file.name) + '" />';
|
||||
} else {
|
||||
document.getElementById(file.id).getElementsByTagName('b')[0].innerHTML = info.response;
|
||||
}
|
||||
},
|
||||
|
||||
Error: function(up, err) {
|
||||
if(err.code == -600) {
|
||||
mui.alert("\n选择的文件太大了");
|
||||
} else if(err.code == -601) {
|
||||
mui.alert("\n选择的文件后缀不对");
|
||||
} else if(err.code == -602) {
|
||||
mui.alert("\n这个文件已经上传过一遍了");
|
||||
} else {
|
||||
mui.alert("\nError xml:" + err.response);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
uploader.init();
|
||||
});
|
||||
|
||||
var uploader = new plupload.Uploader({
|
||||
runtimes: 'html5,flash,silverlight,html4',
|
||||
browse_button: 'selectfiles',
|
||||
//multi_selection: false,
|
||||
// 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: 'http://oss.aliyuncs.com',
|
||||
|
||||
filters: {
|
||||
mime_types: [ //只允许上传图片和zip,rar文件
|
||||
{
|
||||
title: "Image files",
|
||||
extensions: "jpg,gif,png,bmp"
|
||||
},
|
||||
{
|
||||
title: "Zip files",
|
||||
extensions: "zip,rar"
|
||||
}
|
||||
],
|
||||
max_file_size: '10mb', //最大只能上传10mb的文件
|
||||
prevent_duplicates: true //不允许选取重复文件
|
||||
},
|
||||
|
||||
init: {
|
||||
PostInit: function() {
|
||||
document.getElementById('ossfile').innerHTML = '';
|
||||
// document.getElementById('postfiles').onclick = function() {
|
||||
// set_upload_param(uploader, '', false);
|
||||
// return false;
|
||||
// };
|
||||
uploader.bind('FilesAdded', function() {
|
||||
set_upload_param(uploader, '', false);
|
||||
return false;
|
||||
});
|
||||
},
|
||||
|
||||
FilesAdded: function(up, files) {
|
||||
plupload.each(files, function(file) {
|
||||
document.getElementById('ossfile').innerHTML += '<div class="files_out" id="' + file.id + '"><b></b>' +
|
||||
'<div class="progress"><div class="progress-bar" style="width: 60px"></div></div>' +
|
||||
'</div>';
|
||||
});
|
||||
},
|
||||
|
||||
BeforeUpload: function(up, file) {
|
||||
check_object_radio();
|
||||
set_upload_param(up, file.name, true);
|
||||
},
|
||||
|
||||
UploadProgress: function(up, file) {
|
||||
var d = document.getElementById(file.id);
|
||||
d.getElementsByTagName('b')[0].innerHTML = '<span>' + file.percent + "%</span>";
|
||||
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 = '<img src="http://heyuanhui.oss-cn-qingdao.aliyuncs.com/' + get_uploaded_object_name(file.name) + '" />';
|
||||
} else {
|
||||
document.getElementById(file.id).getElementsByTagName('b')[0].innerHTML = info.response;
|
||||
}
|
||||
},
|
||||
|
||||
Error: function(up, err) {
|
||||
if(err.code == -600) {
|
||||
mui.alert("\n选择的文件太大了");
|
||||
} else if(err.code == -601) {
|
||||
mui.alert("\n选择的文件后缀不对");
|
||||
} else if(err.code == -602) {
|
||||
mui.alert("\n这个文件已经上传过一遍了");
|
||||
} else {
|
||||
mui.alert("\nError xml:" + err.response);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
uploader.init();
|
Reference in New Issue
Block a user