From 4677982c003e357cff8f2544be44706bf31ea6de Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期四, 05 五月 2022 19:12:19 +0800 Subject: [PATCH] 2022-05-05 --- src/tabviews/zshare/fileupload/index.jsx | 111 +++++++++++++++++++++++++++++++++++-------------------- 1 files changed, 70 insertions(+), 41 deletions(-) diff --git a/src/tabviews/zshare/fileupload/index.jsx b/src/tabviews/zshare/fileupload/index.jsx index 1e71103..5148154 100644 --- a/src/tabviews/zshare/fileupload/index.jsx +++ b/src/tabviews/zshare/fileupload/index.jsx @@ -39,28 +39,42 @@ let filelist = [] if (config.initval) { - try { - filelist = config.initval.split(',').map((url, index) => { - return { - uid: `${index}`, - name: url.slice(url.lastIndexOf('/') + 1), - status: 'done', - url: url, - origin: true - } - }) - } catch (e) { - filelist = [] + if (/^data:image/.test(config.initval)) { + filelist = [{ + uid: '0', + name: 'data:image/jpeg;base64', + status: 'done', + url: config.initval, + origin: true + }] + } else { + try { + filelist = config.initval.split(',').map((url, index) => { + return { + uid: `${index}`, + name: url.slice(url.lastIndexOf('/') + 1), + status: 'done', + url: url, + origin: true + } + }) + } catch (e) { + filelist = [] + } } } let accept = '' let accepts = null let compress = false - if (config.compress === 'true') { + let maxFile = config.maxfile && config.maxfile > 0 ? config.maxfile : null + if (config.compress === 'true' || config.compress === 'base64') { compress = true accepts = ['.jpg', '.png', '.gif', '.jpeg'] accept = accepts.join(',') + if (config.compress === 'base64') { + maxFile = 1 + } } else if (config.suffix) { accepts = config.suffix.split(',').map(item => { if (!/^\./ig.test(item)) { @@ -83,7 +97,7 @@ filelist, compress, limit: config.limit || 2, - maxFile: config.maxfile && config.maxfile > 0 ? config.maxfile : null, + maxFile: maxFile, fileType: config.fileType || 'text' }) } @@ -281,34 +295,49 @@ let param = {Base64Img: cvs.toDataURL('image/jpeg', compressRate)} - if (rduri) { - param.rduri = rduri - } - - Api.fileuploadbase64(param).then(result => { - if (result.status && result.Images) { - let url = service + result.Images - - if (rduri) { - url = rduri.replace(/webapi(.*)$/, '') + result.Images - } - - this.onUpdate(url) - - this.setState({ - percent: 100 - }, () => { - setTimeout(() => { - this.setState({ - showprogress: false, - percent: 0 - }) - }, 200) - }) - } else { - this.onFail(result.message) + if (this.props.config.compress === 'base64') { + this.onUpdate(param.Base64Img) + + this.setState({ + percent: 100 + }, () => { + setTimeout(() => { + this.setState({ + showprogress: false, + percent: 0 + }) + }, 200) + }) + } else { + if (rduri) { + param.rduri = rduri } - }) + + Api.fileuploadbase64(param).then(result => { + if (result.status && result.Images) { + let url = service + result.Images + + if (rduri) { + url = rduri.replace(/webapi(.*)$/, '') + result.Images + } + + this.onUpdate(url) + + this.setState({ + percent: 100 + }, () => { + setTimeout(() => { + this.setState({ + showprogress: false, + percent: 0 + }) + }, 200) + }) + } else { + this.onFail(result.message) + } + }) + } } img.onerror = () => { -- Gitblit v1.8.0