@@ -19,7 +19,7 @@ interface ParsedFileInfo {
19
19
origin : RcFile ;
20
20
action : string ;
21
21
data : object ;
22
- parsedFile : Exclude < BeforeUploadFileType , boolean > ;
22
+ parsedFile : RcFile ;
23
23
}
24
24
25
25
class AjaxUploader extends Component < UploadProps > {
@@ -162,23 +162,28 @@ class AjaxUploader extends Component<UploadProps> {
162
162
mergedData = data ;
163
163
}
164
164
165
- const parsedFile =
165
+ const parsedData =
166
166
// string type is from legacy `transformFile`.
167
167
// Not sure if this will work since no related test case works with it
168
168
( typeof transformedFile === 'object' || typeof transformedFile === 'string' ) &&
169
169
transformedFile
170
170
? transformedFile
171
171
: file ;
172
172
173
- // Used for `request.ts` get form data name
174
- if ( typeof parsedFile === 'object' && ! ( parsedFile as any ) . name ) {
175
- ( parsedFile as any ) . name = file . name ;
173
+ let parsedFile : File ;
174
+ if ( parsedData instanceof File ) {
175
+ parsedFile = parsedData ;
176
+ } else {
177
+ parsedFile = new File ( [ parsedData ] , file . name , { type : file . type } ) ;
176
178
}
177
179
180
+ const mergedParsedFile : RcFile = parsedFile as RcFile ;
181
+ mergedParsedFile . uid = file . uid ;
182
+
178
183
return {
179
184
origin : file ,
180
185
data : mergedData ,
181
- parsedFile,
186
+ parsedFile : mergedParsedFile ,
182
187
action : mergedAction ,
183
188
} ;
184
189
} ;
@@ -203,17 +208,17 @@ class AjaxUploader extends Component<UploadProps> {
203
208
method : method || 'post' ,
204
209
onProgress : ( e : UploadProgressEvent ) => {
205
210
const { onProgress } = this . props ;
206
- onProgress ?.( e , origin ) ;
211
+ onProgress ?.( e , parsedFile ) ;
207
212
} ,
208
213
onSuccess : ( ret : any , xhr : XMLHttpRequest ) => {
209
214
const { onSuccess } = this . props ;
210
- onSuccess ?.( ret , origin , xhr ) ;
215
+ onSuccess ?.( ret , parsedFile , xhr ) ;
211
216
212
217
delete this . reqs [ uid ] ;
213
218
} ,
214
219
onError : ( err : UploadRequestError , ret : any ) => {
215
220
const { onError } = this . props ;
216
- onError ?.( err , ret , origin ) ;
221
+ onError ?.( err , ret , parsedFile ) ;
217
222
218
223
delete this . reqs [ uid ] ;
219
224
} ,
0 commit comments