|
1 | 1 | /*! |
2 | | - * qiniu-js-sdk v1.0.13-beta |
| 2 | + * qiniu-js-sdk v1.0.14-beta |
3 | 3 | * |
4 | 4 | * Copyright 2015 by Qiniu |
5 | 5 | * Released under GPL V2 License. |
6 | 6 | * |
7 | 7 | * GitHub: http://github.com/qiniu/js-sdk |
8 | 8 | * |
9 | | - * Date: 2016-1-26 |
| 9 | + * Date: 2016-3-22 |
10 | 10 | */ |
11 | 11 |
|
12 | 12 | /*global plupload ,mOxie*/ |
@@ -115,6 +115,13 @@ function QiniuJsSDK() { |
115 | 115 | args.unshift(header); |
116 | 116 | console.log.apply(console, args); |
117 | 117 | } |
| 118 | + if (document.getElementById('qiniu-js-sdk-log')) { |
| 119 | + var msg1 = header; |
| 120 | + for (var j = 0; j < args.length; j++) { |
| 121 | + msg1+=that.stringifyJSON(args[j]); |
| 122 | + } |
| 123 | + document.getElementById('qiniu-js-sdk-log').innerHTML += '<p>'+msg1+'</p>'; |
| 124 | + } |
118 | 125 | } |
119 | 126 |
|
120 | 127 | function makeLogFunc(code){ |
@@ -182,21 +189,8 @@ function QiniuJsSDK() { |
182 | 189 | * @return {Boolean} file is a image or not |
183 | 190 | */ |
184 | 191 | this.isImage = function(url) { |
185 | | - var res, suffix = ""; |
186 | | - var imageSuffixes = ["png", "jpg", "jpeg", "gif", "bmp"]; |
187 | | - var suffixMatch = /\.([a-zA-Z0-9]+)(\?|\@|$)/; |
188 | | - |
189 | | - if (!url || !suffixMatch.test(url)) { |
190 | | - return false; |
191 | | - } |
192 | | - res = suffixMatch.exec(url); |
193 | | - suffix = res[1].toLowerCase(); |
194 | | - for (var i = 0, l = imageSuffixes.length; i < l; i++) { |
195 | | - if (suffix === imageSuffixes[i]) { |
196 | | - return true; |
197 | | - } |
198 | | - } |
199 | | - return false; |
| 192 | + url = url.split(/[?#]/)[0]; |
| 193 | + return (/\.(png|jpg|jpeg|gif|bmp)$/i).test(url); |
200 | 194 | }; |
201 | 195 |
|
202 | 196 | /** |
@@ -520,25 +514,43 @@ function QiniuJsSDK() { |
520 | 514 | // if op.chunk_size set 0 will be cause to direct upload |
521 | 515 | }; |
522 | 516 |
|
523 | | - // if op.uptoken has no value |
524 | | - // get token from 'uptoken_url' |
525 | | - // else |
526 | | - // set token to be op.uptoken |
527 | | - var getUpToken = function() { |
528 | | - if (!op.uptoken) { |
| 517 | + // getUptoken maybe called at Init Event or BeforeUpload Event |
| 518 | + // case Init Event, the file param of getUptken will be set null value |
| 519 | + // if op.uptoken has value, set uptoken with op.uptoken |
| 520 | + // else if op.uptoken_url has value, set uptoken from op.uptoken_url |
| 521 | + // else if op.uptoken_func has value, set uptoken by result of op.uptoken_func |
| 522 | + var getUpToken = function(file) { |
| 523 | + if (op.uptoken) { |
| 524 | + that.token = op.uptoken; |
| 525 | + return; |
| 526 | + } else if (op.uptoken_url) { |
| 527 | + logger.debug("get uptoken from: ", that.uptoken_url); |
529 | 528 | // TODO: use mOxie |
530 | 529 | var ajax = that.createAjax(); |
531 | | - ajax.open('GET', that.uptoken_url, true); |
| 530 | + ajax.open('GET', that.uptoken_url, false); |
532 | 531 | ajax.setRequestHeader("If-Modified-Since", "0"); |
533 | | - ajax.onreadystatechange = function() { |
534 | | - if (ajax.readyState === 4 && ajax.status === 200) { |
535 | | - var res = that.parseJSON(ajax.responseText); |
536 | | - that.token = res.uptoken; |
537 | | - } |
538 | | - }; |
| 532 | + // ajax.onreadystatechange = function() { |
| 533 | + // if (ajax.readyState === 4 && ajax.status === 200) { |
| 534 | + // var res = that.parseJSON(ajax.responseText); |
| 535 | + // that.token = res.uptoken; |
| 536 | + // } |
| 537 | + // }; |
539 | 538 | ajax.send(); |
| 539 | + if (ajax.status === 200) { |
| 540 | + var res = that.parseJSON(ajax.responseText); |
| 541 | + that.token = res.uptoken; |
| 542 | + logger.debug("get new uptoken: ", res.uptoken); |
| 543 | + } else { |
| 544 | + logger.error("get uptoken error: ", ajax.responseText); |
| 545 | + } |
| 546 | + return; |
| 547 | + } else if (op.uptoken_func) { |
| 548 | + logger.debug("get uptoken from uptoken_func"); |
| 549 | + that.token = op.uptoken_func(file); |
| 550 | + logger.debug("get new uptoken: ", that.token); |
| 551 | + return; |
540 | 552 | } else { |
541 | | - that.token = op.uptoken; |
| 553 | + logger.error("one of [uptoken, uptoken_url, uptoken_func] settings in options is required!"); |
542 | 554 | } |
543 | 555 | }; |
544 | 556 |
|
@@ -576,6 +588,10 @@ function QiniuJsSDK() { |
576 | 588 | throw 'browse_button setting in options is required!'; |
577 | 589 | } |
578 | 590 |
|
| 591 | + if (!op.uptoken && !op.uptoken_url && !op.uptoken_func) { |
| 592 | + throw 'one of [uptoken, uptoken_url, uptoken_func] settings in options is required!'; |
| 593 | + } |
| 594 | + |
579 | 595 | logger.debug("init uploader start"); |
580 | 596 |
|
581 | 597 | logger.debug("environment: ", mOxie.Env); |
@@ -630,12 +646,12 @@ function QiniuJsSDK() { |
630 | 646 | logger.debug("Init event activated"); |
631 | 647 | // if op.get_new_uptoken is not true |
632 | 648 | // invoke getUptoken when uploader init |
633 | | - // else |
| 649 | + // else |
634 | 650 | // getUptoken everytime before a new file upload |
635 | 651 | if(!op.get_new_uptoken){ |
636 | | - getUpToken(); |
| 652 | + getUpToken(null); |
637 | 653 | } |
638 | | - getUpToken(); |
| 654 | + //getUpToken(null); |
639 | 655 | }); |
640 | 656 |
|
641 | 657 | logger.debug("bind Init event"); |
@@ -678,7 +694,7 @@ function QiniuJsSDK() { |
678 | 694 | ctx = ''; |
679 | 695 |
|
680 | 696 | if(op.get_new_uptoken){ |
681 | | - getUpToken(); |
| 697 | + getUpToken(file); |
682 | 698 | } |
683 | 699 |
|
684 | 700 | var directUpload = function(up, file, func) { |
|
0 commit comments