要将OFD文件的base64编码转换为可下载的OFD文件,可以通过以下步骤:
-
将后台返回的OFD文件的base64编码解码成二进制数据。
-
创建一个Blob对象,并将二进制数据放入其中。
const byteCharacters = atob(base64EncodedData); const byteNumbers = new Array(byteCharacters.length); for (let i = 0; i < byteCharacters.length; i++) { byteNumbers[i] = byteCharacters.charCodeAt(i); } const byteArray = new Uint8Array(byteNumbers); const fileBlob = new Blob([byteArray], { type: 'application/octet-stream' });
- 创建一个URL对象,并使用它来生成对Blob对象的URL以供下载。
const fileURL = window.URL.createObjectURL(fileBlob);
- 创建一个链接元素(a标签),设置其href属性为Blob URL,设置其download属性为OFD文件的文件名,然后使用click()方法触发点击事件以进行下载。
const link = document.createElement('a');
link.href = fileURL;
link.download = 'example.ofd';
link.click();
完整代码示例:
const base64EncodedData = '...'; // 后台返回的OFD文件的base64编码 // 将base64编码解码成二进制数据 const byteCharacters = atob(base64EncodedData); const byteNumbers = new Array(byteCharacters.length); for (let i = 0; i < byteCharacters.length; i++) { byteNumbers[i] = byteCharacters.charCodeAt(i); } const byteArray = new Uint8Array(byteNumbers); // 创建Blob对象并生成Blob URL const fileBlob = new Blob([byteArray], { type: 'application/octet-stream' }); const fileURL = window.URL.createObjectURL(fileBlob); // 创建链接元素并触发下载 const link = document.createElement('a'); link.href = fileURL; link.download = 'example.ofd'; link.click();