我正在寻找一种方法将HTML5 Web数据库的内容保存到本地文件以实现持久性并加载回Web应用程序。我正在使用具有HTML5功能的Firefox 3.6.8来使用本地Web数据库。我可以上传文件并读取它的内容,但无法找到将数据库内容保存到文件系统的优雅方法。有什么想法吗?
我相信闪存中写的东西可以做到这一点。我会考虑这个,但我更喜欢直接的HTML 5版本。
答案 0 :(得分:0)
你不能用普通的HTML 5做到这一点,因为它没有任何处理本地文件的机制(这无论如何都意味着存在安全风险)。您至少需要一些JavaScript或Flash才能在本地存储数据。
但是您无法使用JavaScript访问本地文件系统。您只能使用Cookie或浏览器的localStorage功能。
你也不能用Flash做到这一点。两个系统的工作方式相同:它们将信息存储在浏览器/ Flash指定的位置。此外,在这两种情况下,空间都是有限的(限制因平台甚至个别设置而异)。
执行此操作的唯一方法是将数据发布到服务器,例如,使用隐藏的表单,让服务器使用标头Content-Disposition: attachment
进行响应,然后将文件发送回客户端。例如:
<form action="doLoopback.php" method="POST" name="theForm">
<input type="hidden" id="data-container" name="data">
</form>
<span id="trigger">→ Click here! ←</span>
<script>
var theData = '123, 2334, "Fé℗⇒oo"';
function sendData() {
document.getElementById('data-container').value = theData;
document.theForm.submit();
}
window.onload = function () {
var el = document.getElementById('trigger');
el.onclick = sendData;
};
</script>
使用PHP,响应文件显示为:
<?php
if (isset($_POST['data'])) {
header('Content-Disposition: attachment; filename=foo.csv');
header('Content-Type: application/octet-stream');
echo $_POST['data'];
}
?>