@@ -306,7 +306,6 @@ function QiniuJsSDK() {
306
306
307
307
plupload . extend ( option , op , {
308
308
url : 'http://upload.qiniu.com' ,
309
- chunk_size : 0 ,
310
309
multipart_params : {
311
310
token : ''
312
311
}
@@ -378,8 +377,17 @@ function QiniuJsSDK() {
378
377
if ( file . size < chunk_size ) {
379
378
directUpload ( up , file , that . key_handler ) ;
380
379
} else {
380
+ var localFileInfo = localStorage . getItem ( file . name ) ;
381
381
var blockSize = chunk_size ;
382
- ctx = '' ;
382
+ if ( localFileInfo ) {
383
+ localFileInfo = JSON . parse ( localFileInfo ) ;
384
+ file . loaded = localFileInfo . offset ;
385
+ file . percent = localFileInfo . percent ;
386
+ ctx = localFileInfo . ctx ;
387
+ if ( localFileInfo . offset + blockSize > file . size ) {
388
+ blockSize = file . size - localFileInfo . ctx ;
389
+ }
390
+ }
383
391
up . setOption ( {
384
392
'url' : 'http://upload.qiniu.com/mkblk/' + blockSize ,
385
393
'multipart' : false ,
@@ -407,7 +415,12 @@ function QiniuJsSDK() {
407
415
'url' : 'http://upload.qiniu.com/mkblk/' + leftSize
408
416
} ) ;
409
417
}
410
-
418
+ localStorage . setItem ( file . name , JSON . stringify ( {
419
+ ctx : ctx ,
420
+ percent : file . percent ,
421
+ total : info . total ,
422
+ offset : info . offset
423
+ } ) ) ;
411
424
} ) ;
412
425
413
426
uploader . bind ( 'Error' , ( function ( _Error_Handler ) {
@@ -565,7 +578,7 @@ function QiniuJsSDK() {
565
578
if ( ajax . status === 200 ) {
566
579
var info = ajax . responseText ;
567
580
last_step ( up , file , info ) ;
568
-
581
+ localStorage . removeItem ( file . name ) ;
569
582
} else {
570
583
uploader . trigger ( 'Error' , {
571
584
status : ajax . status ,
0 commit comments