【发布时间】:2016-11-01 22:34:58
【问题描述】:
我正在使用 FileSaver.js from a SO question 从字符串构建文件保护程序
let byteChars = atob("my string");
let byteNumbers = new Array(byteChars.length);
for (var i = 0; i < byteChars.length; i++) {
byteNumbers[i] = byteChars.charCodeAt(i);
}
let byteArray = new Uint8Array(byteNumbers);
var data:Blob = new Blob([byteArray], {type: "application/octet-stream"});
var filename:string = filename + '.myext';
saveAs(data, filename, true);
然后我必须使用 Javascript 的 FileReader 将它读回"my string":
let fr = new FileReader();
fr.onload = (e:FileReaderEvent) => {
let result:any = e.target.result;
//I don't know what I have to do with this type of data to get "my string" back
};
fr.readAsBinaryString(file);
【问题讨论】:
-
你为什么在这里对“我的字符串”进行base64解码:
atob("my string");? -
我从stackoverflow.com/a/23452051/5480251这个得到它,我不确定我是否可以消除它,但这里的“我的字符串”是 CryptoJS 为我返回的结果,它已经被加密了。跨度>
-
“但在 javascript 中另存为二进制” 这里的“二进制”是什么意思?使用
Uint8Array、Blob、'.myext'文件扩展名的目的是什么?您可以使用data URI将文本内容保存为文件 -
@guest271314 这意味着我不想将我的文本保存为纯文本,
.myext是文件扩展名。 -
是否要求将文本另存为
base64字符串?
标签: javascript typescript io binary