我想知道是否有任何方法可以从 HTML5/JS 写入文件?在浏览器...
我可以用 HTML5/JS 编写文件吗?
假设您的最终目标是让用户将您的文件保存在他们可以找到的地方,例如当右键单击链接并选择“另存为...”时,这些 API 还没有广泛的浏览器覆盖范围,可能是由于出于安全考虑。
但是,无论是否使用 API,您都可以做的是通过一个指向data:
uri的链接来实现它,该uri的download
属性指定了您建议的文件名。例如:
<a id="save" download="earth.txt" href="data:text/plain,mostly harmless ">Save</a>
单击时,至少在 Chrome 中,这将保存一个包含文本mostly harmless
(和尾随换行符)的文件,如earth.txt
您的下载目录中一样。要从 javascript 设置文件内容,请先调用此函数:
function setSaveFile(contents, file_name, mime_type) {
var a = document.getElementById('save');
mime_type = mime_type || 'application/octet-stream'; // text/html, image/png, et c
if (file_name) a.setAttribute('download', file_name);
a.href = 'data:'+ mime_type +';base64,'+ btoa(contents || '');
}
是的,使用新的 FileWriter API。
http://www.w3.org/TR/file-writer-api/
您可以在此处查看当前的浏览器支持:http : //caniuse.com/#feat=filesystem
是的,可以使用 HTML5+JS 读取和写入文件。
帮助您入门的链接 - Exploring FileSystem API
不久前,我还为 SpeckyBoy 写了一篇关于您可能会觉得有用的同一主题的文章 - http://speckyboy.com/2012/10/30/getting-to-grips-with-the-html5-file-api- 2/
据我所知,您不能从 HTML5 写入文件,因为让网页访问用户的文件会带来安全风险。
如果您只需要存储一些数据以便您的页面以后可以访问它,HTML5 确实有一种叫做 Web Storage 的东西可以做到这一点。
或者您可以将数据存储在 cookie(如果它非常小)或服务器上。
另一种可能性是考虑在 Windows 平台中创建类似 ClickOnce 应用程序的东西。这将提供一个指向可下载可执行文件的链接,该可执行文件将在用户的操作系统中运行,但可以进行基于 Web 的回调以发送和检索数据。ClickOnce 应用程序可以嵌入浏览器控件,因此您将拥有一个与 Web 兼容的应用程序,并且能够直接与用户的存储进行对话。