小编Joe*_*yre的帖子

如何从atob创建二进制blob - 当前获得不同的字节

我在服务器上创建了一个二进制Excel文件,我使用从JavaScript/JQuery $ ajax调用调用的Convert.ToBase64String(FileData)从C#WebMethod返回.我已经确认base64字符串数据到达客户端,但是当我尝试将其转换为二进制blob并保存时,保存到磁盘的字节与服务器上的字节不同.(我得到了很多0xC3等字节,看起来很像utf8双字节注入)

$.ajax({
    type: "POST",
    contentType: "application/json;",
    dataType: "json",
    processData: false,
    data: "{ inputData: \"" + dataString + "\" }",
    url: "Api.aspx/GetExcel",
    success: ...
Run Code Online (Sandbox Code Playgroud)

成功处理程序代码包括

var excelBlob = new Blob([atob(msg.d)], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;' });
...
var a = document.createElement('a');
...
a.href = window.URL.createObjectURL(excelBlob);
a.setAttribute('download', 'Excel.xlsx');
Run Code Online (Sandbox Code Playgroud)

当它完成下载时,它具有错误的字节值.与源的二进制比较显示它很接近,但是C3和类似的值插入或插入到位.

有没有什么我做错了或缺少让我的Base64字符串正确转换为客户端二进制blob?

javascript c# base64

3
推荐指数
1
解决办法
4256
查看次数

标签 统计

base64 ×1

c# ×1

javascript ×1