前端base64文件,使用FormData上传

一、处理base64数据
base64toFile(base64Data) {
	//去掉base64的头部信息,并转换为byte
	let split = base64Data.split(',');
	let bytes = window.atob(split[1]);
    //获取文件类型
    let fileType = split[0].match(/:(.*?);/)[1];
	//处理异常,将ascii码小于0的转换为大于0
	let ab = new ArrayBuffer(bytes.length);
	let ia = new Uint8Array(ab);
	for (let i = 0; i < bytes.length; i++) {
		ia[i] = bytes.charCodeAt(i);
	}
	return new Blob([ab], { type: fileType});
},
二、处理axios上传
//新建一个文件  instance.js

import axios from 'axios';
let instance = axios.create({
	headers: { 'Content-Type': 'multipart/form-data' }, //响应头部
	baseURL: '',  //基础路径
});

export default instance;
三、上传
import instance from '@/api/fileUpload.js';

//base64你需要上传的数据
let formData = new FormData();
let file = base64toFile(base64);
//添加文件
formData.append('file', file);
//如果有其他参数
formData.append('id', '1');
//调用接口上传
instance.post('/File/Upload',formData);