File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -107,6 +107,11 @@ function getBlobArrayBuffer(file) {
107107 return file . arrayBuffer ( ) ;
108108 }
109109
110+ let blobBuffer = getBlobBuffer ( file ) ;
111+ if ( blobBuffer ) {
112+ return Promise . resolve ( blobBuffer . buffer . slice ( blobBuffer . byteOffset , blobBuffer . byteOffset + blobBuffer . byteLength ) ) ;
113+ }
114+
110115 if ( typeof FileReader !== "undefined" ) {
111116 return new Promise ( ( resolve , reject ) => {
112117 let reader = new FileReader ( ) ;
@@ -123,6 +128,21 @@ function getBlobArrayBuffer(file) {
123128 return Promise . reject ( new Error ( "Blob upload requires Blob.arrayBuffer() or FileReader support" ) ) ;
124129}
125130
131+ function getBlobBuffer ( file ) {
132+ if ( typeof Object . getOwnPropertySymbols !== "function" ) {
133+ return null ;
134+ }
135+
136+ for ( let symbol of Object . getOwnPropertySymbols ( file ) ) {
137+ let implementation = file [ symbol ] ;
138+ if ( implementation && Buffer . isBuffer ( implementation . _buffer ) ) {
139+ return implementation . _buffer ;
140+ }
141+ }
142+
143+ return null ;
144+ }
145+
126146function isUploadData ( file ) {
127147 return Buffer . isBuffer ( file ) || isUint8Array ( file ) || isArrayBuffer ( file ) ;
128148}
You can’t perform that action at this time.
0 commit comments