react上传文件转base64

前言:

       react有一个第三方插件 ReactFileReader   可以实现这个功能。

实现步骤:

1.安装插件  

npm install react-file-reader --save

 2.代码引入

import ReactFileReader from "react-file-reader";

3.写页面方法

<ReactFileReader

    fileTypes={[".png",".jpg",".gif", "jpeg"]}
    base64
    multipleFiles={!1}
    handleFiles={this.handleFiles}>
    <Button>
        <Icon type="upload" /> 选择文件
    </Button>

</ReactFileReader>


// 获取上传的图片的base64地址

handleFiles = (files) => {

    console.log(files.base64);

}

api:官网入口

Usage

Import React File Reader

import ReactFileReader from 'react-file-reader';

Basic Use

handleFiles = files => {

  console.log(files)

}



<ReactFileReader handleFiles={this.handleFiles}>

  <button className='btn'>Upload</button>

</ReactFileReader>

Response

HTML5 FileList

Base64

When base64 is true, React File Reader returns a JS Object including both the base64 files and the HTML5 FileList. You can access their values at Object.base64 or Object.fileList

handleFiles = (files) => {

  console.log(files.base64)

}



<ReactFileReader fileTypes={[".csv",".zip"]} base64={true} multipleFiles={true} handleFiles={this.handleFiles}>

  <button className='btn'>Upload</button>

</ReactFileReader>

Response

multipleFiles={true}

["data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA", "data:image/png;base64,i..."]

multipleFiles={false}

  "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA..."

Access HTML5 FileList with base64={true}

handleFiles = (files) => {
  console.log(files.fileList)
}
您可以使用antd的Upload组件来实现将PDF文件换为Base64并传递给后端。首先,您需要在当前的React组件中引入Upload组件和其他必要的依赖项。 ```jsx import { useState } from 'react'; import { Upload, message } from 'antd'; const YourComponent = () => { const [fileBase64, setFileBase64] = useState(''); const handleFileChange = (info) => { if (info.file.status === 'done') { // 文件上传完成后的处理 const reader = new FileReader(); reader.onload = (e) => { const base64String = e.target.result; setFileBase64(base64String); // 将base64String传递给后端进行处理 }; reader.readAsDataURL(info.file.originFileObj); } else if (info.file.status === 'error') { message.error('文件上传失败'); } }; return ( <Upload onChange={handleFileChange} action="your-backend-api-url" accept=".pdf" > {/* 这里可以自定义上传按钮 */} <button type="button">选择PDF文件</button> </Upload> ); }; export default YourComponent; ``` 在此代码中,我们使用了`useState`钩子来保存Base64字符串。当文件上传完成后,我们使用`FileReader`对象将PDF文件换为Base64,并将其传递给后端进行处理。您可以将`your-backend-api-url`替换为实际的后端API地址。 请注意,由于安全原因,浏览器通常不允许直接访问本地文件的路径,因此我们使用`FileReader`来读取文件内容并换为Base64字符串。 希望这可以帮助到您!如有其他问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

浩星

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值