javascript - createObjectURL() 不生成适当的图像 URL
问题描述
我正在使用 JavaScript 生成图像 URL。当我打开生成的 url 时,图像只是一个黑色背景的小矩形,这根本不是我想要的图像。因此,我不确定问题出在哪里。
我从后端的回应是:
文件名=图像名称,图像数据=base64Image,dataUrl=“数据:图像/gif;base64,”+ base64Image
str.split(':').pop().split(';')[0];
-> 这一行等于 image/gif
axios.post('/convert/image', fd, {'Content-Type' : 'multipart/form-data'})
.then (res => {
// decoded = base64.decodebytes(res.data.imageData);
// console.log(decoded);
var encodedString = btoa(res.data.imageData);
// console.log(encodedString);
var decodedData = window.atob(encodedString);
var byteNumbers = new Array(decodedData.length);
for (var i = 0; i < decodedData.length; i++) {
byteNumbers[i] = decodedData.charCodeAt(i);
}
var byteArray = new Uint8Array(byteNumbers);
var str = res.data.dataUrl;
var type = str.split(':').pop().split(';')[0];
var blob = new Blob([JSON.stringify(byteArray)], {type: type});
console.log(blob);
var e = document.createEvent('MouseEvents'),
a = document.createElement('a');
a.download = 'download';
var urlCreator = window.URL || window.webkitURL;
a.href = urlCreator.createObjectURL(blob);
a.dataset.downloadurl = [type, a.download, a.href].join(':');
console.log(a.dataset.downloadurl);
e.initEvent('click', true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
a.dispatchEvent(e);
urlCreator.revokeObjectURL(a.href);
});
解决方案
推荐阅读
- javascript - 组件中的多个 v-model
- javascript - 如何根据表单输入值从谷歌表单获取新的响应到不同的文件夹
- reactjs - 无法在反应中映射哈希图
- python - 在pytorch闪电中定义两个张量的以下乘法
- raspberry-pi - 使用 gcc 编译大文件
- javascript - JavaScript:有没有办法使用 Vanilla Calendar JS 设置不同的默认月份?
- optuna - 使用 OPTUNA 和 cnn_learner()
- c# - Blazor @onkeydown 事件将事件参数传递给 JS 函数
- wpf - WPF:有没有办法将多条路径的几何图形组合成一条路径?
- c# - 如何使用 ITextSharp 和 C# Blazor 下载编辑后的 PDF