1
1
/*
2
- angular-file-upload v1.1.0
2
+ angular-file-upload v1.1.5
3
3
https://github.com/nervgh/angular-file-upload
4
4
*/
5
5
( function ( angular , factory ) {
@@ -344,7 +344,7 @@ module
344
344
FileUploader . prototype . _getFilters = function ( filters ) {
345
345
if ( angular . isUndefined ( filters ) ) return this . filters ;
346
346
if ( angular . isArray ( filters ) ) return filters ;
347
- var names = filters . split ( / \s * , / ) ;
347
+ var names = filters . match ( / [ ^ \s , ] + / g ) ;
348
348
return this . filters . filter ( function ( filter ) {
349
349
return names . indexOf ( filter . name ) !== - 1 ;
350
350
} , this ) ;
@@ -400,12 +400,14 @@ module
400
400
/**
401
401
* Transforms the server response
402
402
* @param {* } response
403
+ * @param {Object } headers
403
404
* @returns {* }
404
405
* @private
405
406
*/
406
- FileUploader . prototype . _transformResponse = function ( response ) {
407
+ FileUploader . prototype . _transformResponse = function ( response , headers ) {
408
+ var headersGetter = this . _headersGetter ( headers ) ;
407
409
angular . forEach ( $http . defaults . transformResponse , function ( transformFn ) {
408
- response = transformFn ( response ) ;
410
+ response = transformFn ( response , headersGetter ) ;
409
411
} ) ;
410
412
return response ;
411
413
} ;
@@ -421,17 +423,10 @@ module
421
423
422
424
if ( ! headers ) return parsed ;
423
425
424
- function trim ( string ) {
425
- return string . replace ( / ^ \s + / , '' ) . replace ( / \s + $ / , '' ) ;
426
- }
427
- function lowercase ( string ) {
428
- return string . toLowerCase ( ) ;
429
- }
430
-
431
426
angular . forEach ( headers . split ( '\n' ) , function ( line ) {
432
427
i = line . indexOf ( ':' ) ;
433
- key = lowercase ( trim ( line . substr ( 0 , i ) ) ) ;
434
- val = trim ( line . substr ( i + 1 ) ) ;
428
+ key = line . slice ( 0 , i ) . trim ( ) . toLowerCase ( ) ;
429
+ val = line . slice ( i + 1 ) . trim ( ) ;
435
430
436
431
if ( key ) {
437
432
parsed [ key ] = parsed [ key ] ? parsed [ key ] + ', ' + val : val ;
@@ -440,6 +435,20 @@ module
440
435
441
436
return parsed ;
442
437
} ;
438
+ /**
439
+ * Returns function that returns headers
440
+ * @param {Object } parsedHeaders
441
+ * @returns {Function }
442
+ * @private
443
+ */
444
+ FileUploader . prototype . _headersGetter = function ( parsedHeaders ) {
445
+ return function ( name ) {
446
+ if ( name ) {
447
+ return parsedHeaders [ name . toLowerCase ( ) ] || null ;
448
+ }
449
+ return parsedHeaders ;
450
+ } ;
451
+ } ;
443
452
/**
444
453
* The XMLHttpRequest transport
445
454
* @param {FileItem } item
@@ -458,7 +467,7 @@ module
458
467
} ) ;
459
468
} ) ;
460
469
461
- form . append ( item . alias , item . _file ) ;
470
+ form . append ( item . alias , item . _file , item . file . name ) ;
462
471
463
472
xhr . upload . onprogress = function ( event ) {
464
473
var progress = Math . round ( event . lengthComputable ? event . loaded * 100 / event . total : 0 ) ;
@@ -467,7 +476,7 @@ module
467
476
468
477
xhr . onload = function ( ) {
469
478
var headers = that . _parseHeaders ( xhr . getAllResponseHeaders ( ) ) ;
470
- var response = that . _transformResponse ( xhr . response ) ;
479
+ var response = that . _transformResponse ( xhr . response , headers ) ;
471
480
var gist = that . _isSuccessCode ( xhr . status ) ? 'Success' : 'Error' ;
472
481
var method = '_on' + gist + 'Item' ;
473
482
that [ method ] ( item , response , xhr . status , headers ) ;
@@ -476,14 +485,14 @@ module
476
485
477
486
xhr . onerror = function ( ) {
478
487
var headers = that . _parseHeaders ( xhr . getAllResponseHeaders ( ) ) ;
479
- var response = that . _transformResponse ( xhr . response ) ;
488
+ var response = that . _transformResponse ( xhr . response , headers ) ;
480
489
that . _onErrorItem ( item , response , xhr . status , headers ) ;
481
490
that . _onCompleteItem ( item , response , xhr . status , headers ) ;
482
491
} ;
483
492
484
493
xhr . onabort = function ( ) {
485
494
var headers = that . _parseHeaders ( xhr . getAllResponseHeaders ( ) ) ;
486
- var response = that . _transformResponse ( xhr . response ) ;
495
+ var response = that . _transformResponse ( xhr . response , headers ) ;
487
496
that . _onCancelItem ( item , response , xhr . status , headers ) ;
488
497
that . _onCompleteItem ( item , response , xhr . status , headers ) ;
489
498
} ;
@@ -519,7 +528,9 @@ module
519
528
520
529
angular . forEach ( item . formData , function ( obj ) {
521
530
angular . forEach ( obj , function ( value , key ) {
522
- form . append ( angular . element ( '<input type="hidden" name="' + key + '" value="' + value + '" />' ) ) ;
531
+ var element = angular . element ( '<input type="hidden" name="' + key + '" />' ) ;
532
+ element . val ( value ) ;
533
+ form . append ( element ) ;
523
534
} ) ;
524
535
} ) ;
525
536
@@ -549,8 +560,8 @@ module
549
560
} catch ( e ) { }
550
561
551
562
var xhr = { response : html , status : 200 , dummy : true } ;
552
- var response = that . _transformResponse ( xhr . response ) ;
553
563
var headers = { } ;
564
+ var response = that . _transformResponse ( xhr . response , headers ) ;
554
565
555
566
that . _onSuccessItem ( item , response , xhr . status , headers ) ;
556
567
that . _onCompleteItem ( item , response , xhr . status , headers ) ;
@@ -1155,7 +1166,7 @@ module
1155
1166
* Event handler
1156
1167
*/
1157
1168
FileDrop . prototype . onDragLeave = function ( event ) {
1158
- if ( event . target !== this . element [ 0 ] ) return ;
1169
+ if ( event . currentTarget !== this . element [ 0 ] ) return ;
1159
1170
this . _preventAndStop ( event ) ;
1160
1171
angular . forEach ( this . uploader . _directives . over , this . _removeOverClass , this ) ;
1161
1172
} ;
@@ -1316,5 +1327,6 @@ module
1316
1327
}
1317
1328
} ;
1318
1329
} ] )
1330
+
1319
1331
return module ;
1320
- } ) ) ;
1332
+ } ) ) ;
0 commit comments