使用JavaScript保存文件

使用JavaScript保存文件,javascript,blob,activex,Javascript,Blob,Activex,我有以下代码从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(byteN

我有以下代码从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');
即使将简单字符串写入docx文件,也会给我一个无效文件的错误。但是如果我在记事本中打开相同的docx文件,我就可以看到文本

现在我的问题是如何使用blob对象以静默方式创建文件。文件可以是(txt、docx、ppt、pdf)

任何帮助都将不胜感激


感谢

出于安全目的,浏览器不允许在未经用户许可的情况下将文件保存在用户的计算机上。 考虑使用LoalStur蓄在浏览器中保存它:

对我来说,这显然是不可能做到的。试想一下,每个网站都可以在用户的C驱动器上默默地创建一个文件(我知道,cookie也是文件)。那将是黑客们的梦想。不,用户在这里应该始终处于完全控制状态。但正如我所说的,使用ActiveX我可以保存文件,txt文件保存时没有任何问题,但对于docx文件,即使保存了这些文件,但它显示无效文件,但用户已授予安装ActiveX控件的权限,基本上是让你控制他们的文件系统。这是一种安全风险。微软必须这样做。这也是它们不再出现在MS Edge中的原因之一。
 var FileOpener = new ActiveXObject("Scripting.FileSystemObject");

 var FilePointer = FileOpener.OpenTextFile("C:\taqi.docx", 2, true);
 FilePointer.WriteLine("some text");
 FilePointer.Close();