From ad60c52e5cd9675d3b6f22534f489caa4edcacdd Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Thu, 8 Dec 2022 16:01:42 +0800 Subject: [PATCH] =?UTF-8?q?=E5=90=8C=E6=AD=A5=20gitlink?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/forge/Upload/read.js | 67 ++++++++++++++++------------------------ 1 file changed, 27 insertions(+), 40 deletions(-) diff --git a/src/forge/Upload/read.js b/src/forge/Upload/read.js index 781c08415..6f5136471 100644 --- a/src/forge/Upload/read.js +++ b/src/forge/Upload/read.js @@ -1,8 +1,5 @@ import React, { Component } from "react"; import { Upload, Icon } from "antd"; -import { getUploadActionUrl, appendFileSizeToUploadFileAll } from "educoder"; - -import axios from "axios"; const { Dragger } = Upload; class Read extends Component { constructor(props) { @@ -22,53 +19,43 @@ class Read extends Component { }); }; - handleChange = (info) => { - let reader = new FileReader(); - reader.readAsText(info.fileList[0].originFileObj, "UTF-8"); - reader.onload = (e) => { - this.state.fileContent = e.target.result; - this.props.load && this.props.load(this.state); - }; - }; - - beforeUpload = (file) => { - const forbidden_type = [ - "jpg", - "jpeg", - "png", - "ico", - "bmp", - "gif", - "pdf", - "csv", - "xlsx", - "xls", - "tif", - "svg", - "psd", - "cdr", - "webp", - ]; const { fileList } = this.state; const { size } = this.props; const isLt100M = file.size / 1024 / 1024 < size; - const file_type = file.type.split("/").slice(-1)[0]; if (fileList && fileList.length > 0) { this.props.showNotification("文件已存在, 请删除后再上传"); + return false; } else if (!isLt100M) { this.props.showNotification(`文件大小必须小于${size}MB!`); - } else if (file_type && forbidden_type.indexOf(file_type) !== -1) { - this.props.showNotification(`不支持${file_type}类型`); + return false; } else { this.setState({ fileList: [file], fileName: file.name, }) } - return false; }; + // 上传 文件转base64 + customRequest = (option) =>{ + const formData = new FormData(); + formData.append('files[]', option.file); + const reader = new FileReader(); + reader.readAsDataURL(option.file); + const {load} = this.props; + reader.onloadend = function(e){ + if(e.target.result){ + option.onSuccess(); + const base64 = e.target.result.substring(e.target.result.indexOf('base64')+7, e.target.result.length); + load({ + fileName: option.file.name, + fileContent: base64 + }); + } + } + } + render() { //判断是否已经提交,如已提交评论则上一条评论数据清除 const { icon, size } = this.props; @@ -76,10 +63,10 @@ class Read extends Component { const upload = { name: "file", fileList: fileList, - onChange: this.handleChange, + customRequest: this.customRequest, onRemove: this.onAttachmentRemove, - beforeUpload: this.beforeUpload - }; + beforeUpload: this.beforeUpload, + }; return ( @@ -91,9 +78,9 @@ class Read extends Component {

拖动文件或点击此处上传

-

- 暂仅支持文件格式,不支持图片,excel等不可以txt读取的文件 -

+ {/*

+ 暂仅支持文本格式,不支持图片,excel等不可以txt读取的文件 +

*/}

文件名请使用英文且不得超过{size}MB