前端将任意文件转为base64传给后端

// 界面
<template>
	<div>
		<input type="file" @change="getBase64">
	</div>
</template>
//js代码
<script>
	export default {
		methods: {
			getBase64(e) {
			// 选择的文件
			let file = e.target.files[0];
			console.log(file.name) // 文件名称,有需求可处理
			console.log(file.type) // 文件类型,有需求可处理
				// 判断文件是否读取完毕,读取完毕后执行
			    if (window.FileReader) {
                    let reader = new FileReader();
                    reader.readAsText(file,"GB2312");//"GB2312"解决读取中文乱码问题
                    reader.onload = e => {
                        let base64String = Buffer.from(e.target.result).toString("base64");
                        // 此处可对该base64进行获取赋值传入后端
                        console.log("bese64编码:", base64String);
                        this.XXX(base64String, element.name);//调用上传接口
                    }
                }
			}
		}
	}
</script>

以上是单个文件上传

以下是多个文件循环上传

// 界面
<template>
	<div>
		<input type="file" @change="getBase64">
	</div>
</template>
//js代码
<script>
	export default {
		methods: {
			getBase64(e) {
			  console.log(e);
              let file = e.target.files;
              for (let i = 0; i < file.length; i++) {
                const element = file[i];
                if (window.FileReader) {
                 let reader = new FileReader();
                 reader.readAsText(element,"GB2312");//"GB2312"是读取编码,解决中文乱码问题
                 reader.onload = (e) => {
                   let base64String = Buffer.from(e.target.result).toString("base64");
                   // 此处可对该base64进行获取赋值传入后端
                   this.XXX(base64String, element.name);//调用上传接口
                 };
                }
              }
			}
		}
	}
</script>

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您可以使用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
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值