@@ -23,6 +23,7 @@ export default class Blob extends EventTarget {
23
23
type :string ;
24
24
size :number ;
25
25
isRNFetchBlobPolyfill :boolean = true ;
26
+ multipartBoundary :string = null ;
26
27
27
28
_ref :string = null ;
28
29
_blobCreated :boolean = false ;
@@ -84,14 +85,15 @@ export default class Blob extends EventTarget {
84
85
// process FormData
85
86
else if ( data instanceof FormData ) {
86
87
log . verbose ( 'create Blob cache file from FormData' , data )
87
- let boundary = `--RNFetchBlob-${ this . cacheName } -${ Date . now ( ) } \r\n`
88
+ let boundary = `RNFetchBlob-${ this . cacheName } -${ Date . now ( ) } `
89
+ this . multipartBoundary = boundary
88
90
let parts = data . getParts ( )
89
91
let formArray = [ ]
90
92
for ( let i in parts ) {
91
- formArray . push ( boundary )
93
+ formArray . push ( '\r\n--' + boundary + '\r\n' )
92
94
let part = parts [ i ]
93
95
for ( let j in part . headers ) {
94
- formArray . push ( j + part . headers [ j ] + ';\r\n' )
96
+ formArray . push ( j + ': ' + part . headers [ j ] + ';\r\n' )
95
97
}
96
98
formArray . push ( '\r\n' )
97
99
if ( part . isRNFetchBlobPolyfill )
@@ -100,7 +102,7 @@ export default class Blob extends EventTarget {
100
102
formArray . push ( part . string )
101
103
}
102
104
log . verbose ( 'FormData array' , formArray )
103
- formArray . push ( boundary + '--' )
105
+ formArray . push ( '\r\n--' + boundary + '--\r\n ' )
104
106
p = createMixedBlobData ( this . _ref , formArray )
105
107
}
106
108
// if the data is a string starts with `RNFetchBlob-file://`, append the
@@ -125,9 +127,13 @@ export default class Blob extends EventTarget {
125
127
else
126
128
data = data . toString ( )
127
129
// create cache file
130
+ this . type = String ( this . type ) . replace ( / ; b a s e 6 4 / ig, '' )
128
131
log . verbose ( 'create Blob cache file from string' , 'encode' , encoding )
129
132
p = fs . writeFile ( this . _ref , data , encoding )
130
- . then ( ( size ) => Promise . resolve ( size ) )
133
+ . then ( ( size ) => {
134
+ console . log ( 'file bytes' , size )
135
+ return Promise . resolve ( size )
136
+ } )
131
137
132
138
}
133
139
// TODO : ArrayBuffer support
@@ -240,8 +246,9 @@ function createMixedBlobData(ref, dataArray) {
240
246
let size = 0
241
247
for ( let i in dataArray ) {
242
248
let part = dataArray [ i ]
243
- if ( part instanceof Blob )
244
- args . push ( [ ref , part . getRNFetchBlobRef ( ) , 'uri' ] )
249
+ if ( part . isRNFetchBlobPolyfill ) {
250
+ args . push ( [ ref , part . _ref , 'uri' ] )
251
+ }
245
252
else if ( typeof part === 'string' )
246
253
args . push ( [ ref , part , 'utf8' ] )
247
254
// TODO : ArrayBuffer
0 commit comments