猿问

是否可以仅使用JavaScript将数据写入文件?

是否可以仅使用JavaScript将数据写入文件?

我希望使用JavaScript将数据写入现有文件。我不想把它打印在控制台上。我想把数据写到abc.txt..我读了许多答案的问题,但每一个地方,他们都打印在控制台上。在某些地方,他们给出了代码,但它不起作用。因此,请任何人能帮助我如何实际写入数据到文件。

我引用了代码,但它不起作用:它给出了错误:

 Uncaught TypeError: Illegal constructor

铬和

 SecurityError: The operation is insecure.

论莫兹拉

var f = "sometextfile.txt";writeTextFile(f, "Spoon")writeTextFile(f, "Cheese monkey")writeTextFile(f, "Onion")
function writeTextFile(afilename, output){
  var txtFile =new File(afilename);
  txtFile.writeln(output);
  txtFile.close();}

那么,我们真的可以只使用Javascript或不使用Javascript将数据写入文件吗?请提前帮我谢谢


慕尼黑8549860
浏览 2183回答 3
3回答

慕尼黑的夜晚无繁华

对此有一些建议-如果您试图在客户端计算机上编写文件,则不能以任何跨浏览器的方式这样做。IE确实有允许“受信任的”应用程序使用ActiveX对象来读取/写入文件的方法。如果您试图将其保存在您的服务器上,那么只需将文本数据传递给您的服务器,并使用某种服务器端语言执行文件编写代码。要在客户端存储一些相当小的信息,可以选择cookie。使用HTML 5 API进行本地存储。

温温酱

可以在浏览器中使用Blob和URL.createObjectURL..所有最近的浏览器支持这个.您不能直接保存您创建的文件,因为这会导致大量的安全问题,但是您可以为用户提供下载链接。您可以通过download属性在支持下载属性的浏览器中。与任何其他下载一样,下载文件的用户将对文件名拥有最终发言权。var textFile = null,   makeTextFile = function (text) {     var data = new Blob([text], {type: 'text/plain'});     // If we are replacing a previously generated file we need to     // manually revoke the object URL to avoid memory leaks.     if (textFile !== null) {       window.URL.revokeObjectURL(textFile);     }     textFile = window.URL.createObjectURL(data);     // returns a URL you can use as a href     return textFile;   };这是一个例,它使用此技术将任意文本从textarea.如果希望立即启动下载,而不要求用户单击链接,则可以使用鼠标事件模拟鼠标单击链接。昂船洲氏回答做。我创造了一个更新示例使用这种技术。  var create = document.getElementById('create'),     textbox = document.getElementById('textbox');   create.addEventListener('click', function () {     var link = document.createElement('a');     link.setAttribute('download', 'info.txt');     link.href = makeTextFile(textbox.value);     document.body.appendChild(link);     // wait for the link to be added to the document     window.requestAnimationFrame(function () {       var event = new MouseEvent('click');       link.dispatchEvent(event);       document.body.removeChild(link);     });   }, false);

神不在的星期二

如果您说的是浏览器javascript,出于安全原因,您不能将数据直接写入本地文件。HTML 5新API只能允许您读取文件。但是如果您想要写入数据,并允许用户以文件的形式下载到本地。以下代码起作用:    function download(strData, strFileName, strMimeType) {     var D = document,         A = arguments,         a = D.createElement("a"),         d = A[0],         n = A[1],         t = A[2] || "text/plain";     //build download link:     a.href = "data:" + strMimeType + "charset=utf-8," + escape(strData);     if (window.MSBlobBuilder) { // IE10         var bb = new MSBlobBuilder();         bb.append(strData);         return navigator.msSaveBlob(bb, strFileName);     } /* end if(window.MSBlobBuilder) */     if ('download' in a) { //FF20, CH19         a.setAttribute("download", n);         a.innerHTML = "downloading...";         D.body.appendChild(a);         setTimeout(function() {             var e = D.createEvent("MouseEvents");             e.initMouseEvent("click", true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);             a.dispatchEvent(e);             D.body.removeChild(a);         }, 66);         return true;     }; /* end if('download' in a) */     //do iframe dataURL download: (older W3)     var f = D.createElement("iframe");     D.body.appendChild(f);     f.src = "data:" + (A[2] ? A[2] : "application/octet-stream") + (window.btoa ? ";base64" : "") + ","      + (window.btoa ? window.btoa : escape)(strData);     setTimeout(function() {         D.body.removeChild(f);     }, 333);     return true;}使用它:download('the content of the file', 'filename.txt', 'text/plain');
随时随地看视频慕课网APP
我要回答