Skip to content

Commit 2c3b8f4

Browse files
committed
Improve file uploader.
1 parent 1666fe0 commit 2c3b8f4

File tree

1 file changed

+27
-21
lines changed

1 file changed

+27
-21
lines changed

src/FileUploader/index.js

Lines changed: 27 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -133,30 +133,36 @@ class FileUploader extends React.Component {
133133
file = new File([file], newName, { type: file.type });
134134
}
135135
try {
136-
let fileReader = new FileReader();
137-
fileReader.readAsDataURL(file);
136+
let isImage = /image/i.test(uploadFile.type);
138137

139-
fileReader.addEventListener('load', function (event) {
140-
let isImage = /image/i.test(file.type);
141-
if (uploadType === 'file' || isImage) {
142-
let uploadFileItem = {
143-
name: file.name,
144-
fileIconUrl: isImage ? event.target.result : getFileIconUrl(file.name, file.type),
145-
isUploading: true,
146-
isErrorTip: false,
147-
file: file,
148-
size: file.size,
149-
url: '',
150-
type: uploadType === 'file' ? 'file' : '',
151-
percent: 0,
152-
};
138+
let uploadFileItem = {
139+
name: uploadFile.name,
140+
fileIconUrl: getFileIconUrl(uploadFile.name),
141+
isUploading: true,
142+
isErrorTip: false,
143+
uploadFile: uploadFile,
144+
size: uploadFile.size,
145+
url: '',
146+
type: uploadType === 'file' ? 'file' : '',
147+
percent: 0,
148+
};
149+
150+
// Provide preview when the image size is less than 100MB
151+
if (isImage && uploadFile.size < 100 * 1024 * 1024) {
152+
let fileReader = new FileReader();
153+
fileReader.readAsDataURL(uploadFile);
154+
fileReader.onload = function (event) {
155+
uploadFileItem.fileIconUrl = event.target.result;
153156
uploadFileList.push(uploadFileItem);
154-
}
155-
checkLoadFinish();
156-
}, false);
157-
fileReader.addEventListener('error', function (e) {
157+
checkLoadFinish();
158+
};
159+
fileReader.onerror = function () {
160+
checkLoadFinish();
161+
};
162+
} else {
163+
uploadFileList.push(uploadFileItem);
158164
checkLoadFinish();
159-
}, false);
165+
}
160166
} catch (event) {
161167
checkLoadFinish();
162168
}

0 commit comments

Comments
 (0)