@@ -63,7 +63,7 @@ class UploadHelper {
6363 fileData . error . upload = errorText ;
6464 }
6565
66- upload ( url , headers , filesData , progressFn ) {
66+ upload ( url , headers , filesData , createFormData , progressFn , configureFn ) {
6767 var self = this ;
6868 progressFn = progressFn || function ( ) { } ;
6969 var promises = [ ] ;
@@ -76,15 +76,24 @@ class UploadHelper {
7676 }
7777 for ( let i = 0 ; i < filesData . length ; i ++ ) {
7878 let fileData = filesData [ i ] ;
79- var formData = new FormData ( ) ;
80- formData . append ( 'file' , fileData . file ) ;
79+ var formData ;
80+ if ( typeof createFormData == 'function' ) {
81+ formData = createFormData ( fileData ) ;
82+ }
83+ else {
84+ formData = new FormData ( ) ;
85+ formData . append ( 'file' , fileData . file ) ;
86+ }
8187 ( function ( fileData ) {
8288 var promise = self . doUpload ( url , headers , formData , function ( progressEvent ) {
8389 var percentCompleted = ( progressEvent . loaded * 100 ) / progressEvent . total ;
8490 fileData . progress ( percentCompleted >= 100 ? 99.99 : percentCompleted ) ; // do not complete until promise resolved
8591 updateOverallProgress ( ) ;
8692 } , function ( xhr ) {
8793 fileData . xhr = xhr ;
94+ if ( typeof configureFn == 'function' ) {
95+ configureFn ( xhr ) ;
96+ }
8897 } ) ;
8998 promise . then ( function ( response ) {
9099 delete fileData . xhr ;
@@ -99,13 +108,16 @@ class UploadHelper {
99108 return Promise . all ( promises ) ;
100109 }
101110
102- deleteUpload ( url , headers , fileData ) {
111+ deleteUpload ( url , headers , fileData , uploadData ) {
103112 return new Promise ( ( resolve , reject ) => {
104113 if ( fileData . xhr ) {
105114 fileData . xhr . abort ( ) ;
106115 }
107- if ( fileData . upload ) {
108- this . doDeleteUpload ( url , headers , fileData . upload , ( xhr ) => {
116+ if ( uploadData === undefined ) {
117+ uploadData = fileData . upload ;
118+ }
119+ if ( uploadData ) {
120+ this . doDeleteUpload ( url , headers , uploadData , ( xhr ) => {
109121 } ) . then ( ( result ) => {
110122 resolve ( result ) ;
111123 } , ( err ) => {
0 commit comments