我有以下代码从Base64创建文件。
var byteCharacters =atob(content);
var byteNumbers = new Array(byteCharacters.length);
for (var i = 0; i < byteCharacters.length; i++) {
byteNumbers[i] = byteCharacters.charCodeAt(i);
}
var byteArray = new Uint8Array(byteNumbers);
var blob = new Blob([byteArray]);
var link = document.createElement('a');
link.href = window.URL.createObjectURL(blob);
window.navigator.msSaveOrOpenBlob(blob, 'msSaveBlob_testFile.docx');
问题在于,当我执行msSaveOrOpenBlob时,它会要求用户下载/保存文件,我想要的是将其自动保存到用户c驱动器中。
我认为这可以在IE中使用ActiveX来完成,但是即使我使用ActiveX保存docx文件,尽管它保存了文件,但它说文件已损坏,但是对于简单的txt文件,它仍然可以正常工作。
var FileOpener = new ActiveXObject("Scripting.FileSystemObject");
var FilePointer = FileOpener.OpenTextFile("C:\taqi.docx", 2, true);
FilePointer.WriteLine("some text");
FilePointer.Close();
即使将简单的字符串写入docx文件,也给我无效文件的错误。但是,如果我在记事本中打开相同的docx文件,则看不到该文本。
现在我的问题是如何使用blob对象静默创建文件。该文件可以是(txt,docx,ppt,pdf)
任何帮助将不胜感激。
谢谢
答案 0 :(得分:0)
出于安全目的,浏览器不允许未经用户许可将文件保存在用户计算机上。 考虑使用localstorage将其保存在浏览器中: https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage