From c012b29a2082679894cf915901c642244fe1adb0 Mon Sep 17 00:00:00 2001 From: neverland Date: Thu, 8 Aug 2019 20:28:55 +0800 Subject: [PATCH] [new feature] Uploader: support isImage flag (#4072) --- src/uploader/README.zh-CN.md | 5 ++++- src/uploader/test/utils.spec.js | 1 + src/uploader/utils.ts | 7 +++++++ 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/uploader/README.zh-CN.md b/src/uploader/README.zh-CN.md index de1cd6ad2..e1ed2d6b8 100644 --- a/src/uploader/README.zh-CN.md +++ b/src/uploader/README.zh-CN.md @@ -42,7 +42,10 @@ export default { data() { return { fileList: [ - { url: 'https://img.yzcdn.cn/vant/cat.jpeg' } + { url: 'https://img.yzcdn.cn/vant/cat.jpeg' }, + // Uploader 根据文件后缀来判断是否为图片文件 + // 如果图片 URL 中不包含类型信息,可以添加 isImage 标记来声明 + { url: 'https://cloud-image', isImage: true } ] } } diff --git a/src/uploader/test/utils.spec.js b/src/uploader/test/utils.spec.js index b38ae6a41..ba3e239e5 100644 --- a/src/uploader/test/utils.spec.js +++ b/src/uploader/test/utils.spec.js @@ -10,5 +10,6 @@ test('isImageFile', () => { expect(isImageFile({ file: { type: 'application/pdf' } })).toBeFalsy(); expect(isImageFile({ content: 'data:image/xxx' })).toBeTruthy(); expect(isImageFile({ content: 'data:application/xxx' })).toBeFalsy(); + expect(isImageFile({ isImage: true })).toBeTruthy(); expect(isImageFile({})).toBeFalsy(); }); diff --git a/src/uploader/utils.ts b/src/uploader/utils.ts index e8a826dcf..067598be5 100644 --- a/src/uploader/utils.ts +++ b/src/uploader/utils.ts @@ -30,6 +30,7 @@ export type FileListItem = { url?: string; file?: File; content?: string; // dataUrl + isImage?: boolean; }; const IMAGE_EXT = ['jpeg', 'jpg', 'gif', 'png', 'svg']; @@ -39,6 +40,12 @@ export function isImageUrl(url: string): boolean { } export function isImageFile(item: FileListItem): boolean { + // some special urls cannot be recognized + // user can add `isImage` flag to mark it as an image url + if (item.isImage) { + return true; + } + if (item.file && item.file.type) { return item.file.type.indexOf('image') === 0; }