123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122 |
- ;
- (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:'JJO5vl65dPW0Jqq2PJCKVq_s1TZToNHbyltRZF5Z:pFpWMw2POFH5bQ5JEkbpfj8JtAI=:eyJzY29wZSI6Indvemh1YS1pY29ucyIsImRlYWRsaW5lIjoyOTkwMDc1MzQ0fQ==',
- pics:'JJO5vl65dPW0Jqq2PJCKVq_s1TZToNHbyltRZF5Z:iU_Cu9uPM6gGAL4KxuAEU4dN6kM=:eyJzY29wZSI6Indvemh1YS1waWNzIiwiZGVhZGxpbmUiOjI5OTAwNzU0MjV9',
- avatars:'JJO5vl65dPW0Jqq2PJCKVq_s1TZToNHbyltRZF5Z:8zC6c7749vXkIM2kcoZaDi8zQ4U=:eyJzY29wZSI6Indvemh1YS1hdmF0YXJzIiwiZGVhZGxpbmUiOjI5OTAwNzU1MTN9',
- test:'JJO5vl65dPW0Jqq2PJCKVq_s1TZToNHbyltRZF5Z:yNDn75FCU8vu9sMsaiDzxC7CHj0=:eyJzY29wZSI6Indvemh1YS10ZXN0IiwiZGVhZGxpbmUiOjI5OTAwNzU1NTZ9',
- // video:'JJO5vl65dPW0Jqq2PJCKVq_s1TZToNHbyltRZF5Z:1IRu2w_tW56oFpVE_K9BHDbuDjU=:eyJzY29wZSI6Indvemh1YS12aWRlbyIsImRlYWRsaW5lIjoxODA1MzIyMjkwfQ=='
- video:'JJO5vl65dPW0Jqq2PJCKVq_s1TZToNHbyltRZF5Z:2gdqkV58YGMfGe3XqRPTjmUudwg=:eyJzY29wZSI6Indvemh1YS12aWRlbyIsImRlYWRsaW5lIjoxODQ1NTY2NDQ4fQ=='
- },
- url_prefix:{
- pics:'http://7oxep5.com2.z0.glb.clouddn.com',
- avatars:'http://7o52dq.com2.z0.glb.clouddn.com',
- icons:'http://7oxep6.com2.z0.glb.clouddn.com',
- test:'http://7oxj0w.com2.z0.glb.clouddn.com',
- video:'http://7rfl3z.com2.z0.glb.qiniucdn.com'
- }
- }
- 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.me'){
- 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('<input type="file" id="file'+time+'" name="file" style="height: '+height+'px;left: -'+width+'px;opacity: 0;position: relative;display: inline;top: 0;width: '+width+'px;">');
- $('#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;
- // }
- var args = arguments[1];
- // debugger;
- return new Qiniu(args);
- }
- })(jQuery);
|