js请求到的图片怎么进行base64解码
时间: 2023-11-23 18:06:24 浏览: 96
图片的base64解码可以通过JavaScript中的atob函数实现,如下所示:
```
var base64String = "data:image/png;base64,iVBORw0KG..."; // 图片的base64字符串
var decodedData = atob(base64String.split(',')[1]); // 对base64字符串进行解码
```
其中,split函数用于将base64字符串以逗号为分隔符分成两部分,第一部分为"data:image/png;base64"等前缀,第二部分为图片的base64编码。atob函数则将第二部分的base64编码解码成原始二进制数据。需要注意的是,atob函数只能解码ASCII字符,对于非ASCII字符需要先进行Unicode转义,再进行解码。
相关问题
onerror中使用base64解码执行js
在JavaScript中,如果你在`onerror`事件回调中遇到了base64编码的图像数据,通常情况下你需要先解码它,然后再尝试解析或执行其中包含的JavaScript代码。这通常发生在跨域请求时,服务器返回的可能是base64编码的自执行脚本。
以下是一个简单的步骤说明如何实现:
1. 解码base64字符串:
```javascript
var base64String = "data:image/jpeg;base64,YourBase64Data";
var decodedData = atob(base64String.split(',')[1]);
```
2. 将解码后的字符串转换为二进制数据:
```javascript
var binaryData = new Uint8Array(new Buffer(decodedData, 'binary'));
```
3. 创建一个新的`Blob`对象,并提供这个二进制数据作为输入:
```javascript
var blob = new Blob([binaryData], {type: 'application/javascript'});
```
4. 创建并运行一个新的`eval`上下文或创建一个`Script`元素来执行其中的JavaScript:
```javascript
var scriptElement = document.createElement('script');
scriptElement.textContent = '(' + blob.text + ')();'; // 注意这是为了防止XSS攻击,实际应用中应谨慎对待
document.head.appendChild(scriptElement); // 或者在某个合适的DOM元素上执行
```
然而,`eval`和直接执行`textContent`中的JavaScript可能存在安全风险,尽量避免在生产环境中这样做,特别是在不了解内容来源的情况下。
uniapp 怎么讲base64解码成图片
在uniapp中,可以使用以下方法将base64解码成图片:
```javascript
// 把base64转换成图片
getBase64ImageUrl(base64Url) {
// 获取到base64Data
var base64Data = base64Url;
// 通过uniapp自带方法将base64转为二进制去除特殊符号,再转回base64
base64Data = uni.arrayBufferToBase64(uni.base64ToArrayBuffer(base64Data));
// 拼接请求头,data格式可以为image/png或者image/jpeg等,根据需求进行修改
const base64ImgUrl = "data:image/png;base64," + base64Data;
// 返回解码后的base64ImgUrl,可以将其绑定到img标签的src属性上显示图片
return base64ImgUrl;
}
```
使用以上方法,可以将base64字符串解码成图片,并将生成的Blob URL绑定到img标签的src属性上,从而显示图片。
阅读全文