; (function ($) { var Qiniu = function (args) { this.defaults = { button:"#qiniu_uploader", qiniu_upload_url : 'http://up.qiniu.com', bucket:'', token:'', //token:'JJO5vl65dPW0Jqq2PJCKVq_s1TZToNHbyltRZF5Z:uxXRiYFI6TVNEzg8SbZL5JgOXsQ=:eyJzY29wZSI6Indvemh1YS1pY29ucyIsImRlYWRsaW5lIjoyOTg4ODU5MzUxfQ==', before_upload:function(){return true;},//上传之前调用的函数 各种判断和验证 success_callback:function(result){},//上传成功之后的回调 fail_callback:function(){}//上传失败之后的回调 } this.privateVal = { token:{ icons:'Kn8GNMFOLKTNMUaKZ6r1wnjsgTk4ideQifK3umUr:RM2Gr0eV9aQXuOY8ZdW8-xuqIWM=:eyJzY29wZSI6Imljb25zIiwiZGVhZGxpbmUiOjE0NzQ0NTE4NDkwMDAwMDAwMDB9', //icons:'Kn8GNMFOLKTNMUaKZ6r1wnjsgTk4ideQifK3umUr:bvW3CgEQgS8x8B6-B-OEALUB4Hg=:eyJzY29wZSI6Imljb25zIiwiZGVhZGxpbmUiOjE0NzQ0NTEyMjEwMDAwfQ==', //pics:'Kn8GNMFOLKTNMUaKZ6r1wnjsgTk4ideQifK3umUr:8oDemD47dVgyJ6PkSVGrqVbwNjw=:eyJzY29wZSI6InlpZ3VhbmppYS1waWNzIiwiZGVhZGxpbmUiOjEuNDc0NDQ1ODU5ZSsyMn0=', pics:'Kn8GNMFOLKTNMUaKZ6r1wnjsgTk4ideQifK3umUr:PhjO5GeGx1VECe1W7AlqUHZrxhg=:eyJzY29wZSI6InBpY3MiLCJkZWFkbGluZSI6MTQ3NDQ1MTg0OTAwMDAwMDAwMH0=', //avatars:'Kn8GNMFOLKTNMUaKZ6r1wnjsgTk4ideQifK3umUr:pHF1FKzQZlwXtJHmwsB3qO-ghnM=:eyJzY29wZSI6InlpZ3VhbmppYS1hdmF0YXJzIiwiZGVhZGxpbmUiOjEuNDc0NDQ1ODU5ZSsyNX0=', avatars:'Kn8GNMFOLKTNMUaKZ6r1wnjsgTk4ideQifK3umUr:a-HCK5r5iPL8Bisb-mQLI21oZJM=:eyJzY29wZSI6ImF2YXRhcnMiLCJkZWFkbGluZSI6MTQ3NDQ1MTg0OTAwMDAwMDAwMH0=', //test:'Kn8GNMFOLKTNMUaKZ6r1wnjsgTk4ideQifK3umUr:w1caW6Bxg-_SyTJQSgDENmsTEtM=:eyJzY29wZSI6InlpZ3VhbmppYS10ZXN0IiwiZGVhZGxpbmUiOjEuNDc0NDQ1ODU5ZSsyMn0=', test:'Kn8GNMFOLKTNMUaKZ6r1wnjsgTk4ideQifK3umUr:kPiwYRwhAt8ULIMxphH8Hbgs6Mk=:eyJzY29wZSI6InRlc3QiLCJkZWFkbGluZSI6MTQ3NDQ0NTg1OTAwfQ==', //video:'Kn8GNMFOLKTNMUaKZ6r1wnjsgTk4ideQifK3umUr:hauyYF_p1mGoIkuIA3C74u5cdVo=:eyJzY29wZSI6InlpZ3VhbmppYS12aWRlbyIsImRlYWRsaW5lIjoxLjQ3NDQ0NTg1OWUrMjV9' video:'Kn8GNMFOLKTNMUaKZ6r1wnjsgTk4ideQifK3umUr:on3HAIABM-iYVHVJwX47onvMj_A=:eyJzY29wZSI6InZpZGVvIiwiZGVhZGxpbmUiOjE0NzQ0NTE4NDkwMDAwMDAwMDB9' }, url_prefix:{ pics:'http://pics.yiguanjia.club', avatars:'http://avatar.yiguanjia.club', //icons:'http://odug4508u.bkt.clouddn.com', icons:'http://icon.yiguanjia.club', //test:'http://odufxpjo7.bkt.clouddn.com', test:'http://test.yiguanjia.club', video:'http://video.yiguanjia.club' } } this.init(args); }; Qiniu.prototype.init= function(args) { var options = $.extend(this.defaults, args); console.log('---------methodsoptions', options); var host = document.domain; if(host=='admin.yiguanjiadev.me' || host=='admintest.yiguanjia.club'){ options.bucket = 'test'; } options.token = this.privateVal.token[options.bucket]; this.create_items(options); } Qiniu.prototype.create_items = function(options){ var that = this; if($(options.button)){ var width = $(options.button).width(), height = $(options.button).height(), time = new Date().getTime(); $(options.button).after(''); $('#file'+time).on('change',function(e){ var result = options.before_upload(); if(result){ if ($(this)[0].files && $(this)[0].files.length > 0) { // 上传文件大小检查 // if ($(this)[0].files[0].size > 102400) { // $.messager.alert('提示', '上传的文件太大了噢', 'warning'); // $.messager.progress('close'); // video_count = 0; // return false; // } that.qiniu_upload($(this)[0].files[0], options); } } }) }else{ console.log('元素不存在'); return false; } } Qiniu.prototype.qiniu_upload = function(f, options) { var that = this; var xhr = new XMLHttpRequest(); xhr.open('POST', options.qiniu_upload_url, true); //xhr.setRequestHeader("Content-Type", "multipart/form-data; boundary=------WebKitFormBoundary7S6LNB4lnXhKZt1I"); //xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); var formData, startDate; formData = new FormData(); formData.append('token', options.token); formData.append('file', f); var name = f.name; var point = name.lastIndexOf('.'), type = name.substr(point), key = Math.random().toString(16).substring(2) + (+new Date()) + type; formData.append('key', key); xhr.onreadystatechange = function(response) { if (xhr.readyState == 4 && xhr.status == 200 && xhr.responseText != "") { var blkRet = JSON.parse(xhr.responseText); blkRet.url = that.privateVal.url_prefix[options.bucket]+'/'+blkRet.key; //console && console.log(blkRet); // console.log(blkRet) options.success_callback(blkRet); } else if (xhr.status != 200 && xhr.responseText) { options.fail_callback(); } }; $("#progressbar").show(); xhr.send(formData); } $.fn.qiniu_upload_single = function() { var method = arguments[0]; // if(Qiniu[method]) { // method = Qiniu[method]; // } else if( typeof(method) == 'object' || !method ) { // method = Qiniu.init; // } else { // return this; // } console.log(arguments); var args = arguments[1]; // debugger; return new Qiniu(args); } })(jQuery);