Skip to content

Commit a3251a2

Browse files
committed
fix(uploader): 修复选择多个文件上传只会上传一个文件的问题
- 修复了 readFile 方法中多文件处理的缺陷 - 调整文件读取逻辑,确保所有选中的文件都能正确处理
1 parent a767209 commit a3251a2

File tree

2 files changed

+8
-3
lines changed

2 files changed

+8
-3
lines changed

src/packages/uploader/uploader.taro.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -387,6 +387,7 @@ const InternalUploader: ForwardRefRenderFunction<
387387
}
388388

389389
const readFile = <T extends TFileType>(files: T[]) => {
390+
const results: FileItem[] = []
390391
files.forEach((file: T, index: number) => {
391392
let fileType = file.type
392393
const filepath = (file.tempFilePath || file.path) as string
@@ -428,8 +429,9 @@ const InternalUploader: ForwardRefRenderFunction<
428429
fileItem.url = fileType === 'video' ? file.thumbTempFilePath : filepath
429430
}
430431
executeUpload(fileItem, index)
431-
setFileList([...fileList, fileItem])
432+
results.push(fileItem)
432433
})
434+
setFileList([...fileList, ...results])
433435
}
434436

435437
const filterFiles = <T extends TFileType>(files: T[]) => {

src/packages/uploader/uploader.tsx

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -288,6 +288,7 @@ const InternalUploader: ForwardRefRenderFunction<
288288
}
289289

290290
const readFile = (files: File[]) => {
291+
const results: FileItem[] = []
291292
files.forEach((file: File, index: number) => {
292293
const formData = new FormData()
293294
formData.append(name, file)
@@ -306,13 +307,15 @@ const InternalUploader: ForwardRefRenderFunction<
306307
const reader = new FileReader()
307308
reader.onload = (event: ProgressEvent<FileReader>) => {
308309
fileItem.url = (event.target as FileReader).result as string
309-
setFileList([...fileList, fileItem])
310+
// setFileList([...fileList, fileItem])
311+
results.push(fileItem)
310312
}
311313
reader.readAsDataURL(file)
312314
} else {
313-
setFileList([...fileList, fileItem])
315+
results.push(fileItem)
314316
}
315317
})
318+
setFileList([...fileList, ...results])
316319
}
317320

318321
const filterFiles = (files: File[]) => {

0 commit comments

Comments
 (0)