另存为文本文件 javascript
Posted
技术标签:
【中文标题】另存为文本文件 javascript【英文标题】:Save as text file javascript 【发布时间】:2011-04-05 13:21:58 【问题描述】:目前,我正在使用此代码:
<?php
header('Content-type: application/force-download');
header('Content-Disposition: attachment; filename="'.$_POST['savename'].'.bob"');
echo($_POST['savedata'])
?>
它获取表单的数据,创建一个附件并立即将其发送回去。这是没用的,因为客户端有数据。我想把它改写成:
myForm.onsubmit = SomeSaveToFileFunction()
【问题讨论】:
抛开现代 html5 API(几乎可以肯定它不会做你真正想要的),你不能告诉浏览器将文件保存到本地(客户端)机器。 我认为您应该在此处添加对您要实现的目标的解释。简单地发布代码并说“在 javacript 中执行此操作”并不是很有帮助。 我正在尝试在文本文件中获取一些文本...标题不清楚吗? 【参考方案1】:Chrome 现在可以做到这一点。
html
<textarea></textarea><button>save</button>
javascript
document.getElementsByTagName('button')[0].onclick = function()
var a = document.createElement('a');
a.href = 'data:text/plain;base64,'+
btoa(document.getElementsByTagName('textarea')[0].value);
a.textContent = 'download';
a.download = 'text.txt';
a.click();
演示
http://jsfiddle.net/88BYB/3/
EDIT最新版chrome不接受下载属性。(chrome35)
【讨论】:
【参考方案2】:确实,流量可能毫无用处。你是对的。但就像 Pointy 说的那样,不幸的是,仅使用 javascript 是没有办法的。
如果您只想以更优雅的方式(比页面重新加载)实现下载,请使用“隐藏”iframe,它会加载 PHP 响应。也许您可以轻松地将 PHP 处理从 POST 切换到 GET 和 ...
myForm.onsubmit = function(formValueSavename, formValueSavedata)
// phpIframeRef addresses you hidden iframe
phpIframeRef.loaction.href = 'sendData.php?savename=' + formValueSavename + '&savedata=' + formValueSavedata;
您可能需要一些代码来禁止您对表单的默认处理...我不知道。
【讨论】:
谢谢,但是 GET 的数据太多了。如果要使用 Heiko 的代码,可以通过“return false;”来抑制默认处理。在函数的最后。如果您将表单提交到带有“【参考方案3】:出于明显的安全原因,JavaScript 不能直接在本地计算机上写入文件。但是,您也许可以使用 ActiveX 对象来做您需要的事情,但同样,它只适用于 IE。然后,您将需要类似 NPAPI 的等价物来使其与 Chrome 兼容。
我想你应该坚持你实际做的方式,如果它像你想要的那样工作。
编辑:我的意思是 NPAPI 而不是“API”。它可以让您构建以与 ActiveX 相同的方式工作的插件,并让您做同样的事情。
【讨论】:
以上是关于另存为文本文件 javascript的主要内容,如果未能解决你的问题,请参考以下文章
Excel VBA 使用单元格文本作为文件名在当前目录中另存为
需要一个批处理文件来编辑包含列表中值的文本文件,然后另存为新文件