// 获取Base64 数据
axios.post(`${this.baseUrl}/video=grabimage`, JSON.stringify(data)).then((res) => {
// 获取 Base64 数据
const base64Data = res.data.photoBase64;
// 将 Base64 转换为二进制数据
const bytes = window.atob(base64Data);
//处理异常,将ASCII码小于0的转换为大于0,进行二进制转换
let buffer = new ArrayBuffer(bytes.length);
let uint = new Uint8Array(buffer); //生成一个8位数的数组
for (let i = 0; i < bytes.length; i++) {
uint[i] = bytes.charCodeAt(i); //根据长度返回相对应的Unicode 编码
}
//Blob对象
let imageFile = new Blob([buffer], { type: "image/jpeg" }); //type为图片的格式
this.uploadFile(imageFile ,'2')
})
// 上传二进制流图片
uploadFile(imageFile, fileType) {
let formData = new FormData();
const date = new Date();
let y = date.getFullYear();
let m = date.getMonth() + 1; // 月份从 0 开始,需加 1
let d = date.getDate();
// 确保月份和日期是两位数
let nowDate = `${y}${m < 10 ? '0' + m : m}${d < 10 ? '0' + d : d}`;
formData.append('file', imageFile, nowDate + '_' + this.alarmEventId + "_" +
fileType + '.jpg')
this.axios({
url: "/uploadFile",
method: "post",
data: formData,
headers: {
'Content-Type': 'multipart/form-data;charset=utf-8',
},
}).then(res => {
if (res.data.code == '200') {
this.srcList.push(res.data.url)
this.$message.success('图像采集成功!');
}
}).catch(error => {
console.log(error);
})
},
vue Base64转二进制,上传后端服务器
最新推荐文章于 2025-03-23 21:49:04 发布