我有以下代码:
<script type="text/javascript">
$(document).ready(function(){
$("form.loader").on('submit',function(e){
e.preventDefault();
$.ajax({
url: "data.json",
type: "POST",
cache: false,
success: function(data){
console.log(data);
},
error: function(data){
console.log(data);
}
});
});
});
</script>
<form class="loader" method="POST" enctype="multipart/form-data">
<input type="file" name="data">
<button type="submit">Cargar datos</button>
</form>
所以我想要的是能够从输入文件中加载 JSON 并将 JSON 的全部内容存储在一个变量中。对其应用修改并再次保存文件:)
但现在我只想打开文件来操作它。
回复@json
使用 load 非常适合显示文件,但是如果我想将内容存储在变量中,我应该怎么做?
对于一些评论...
好吧,很少使用 GET。我通常总是使用 POST。如果我必须使用 GET,我想知道是什么原因:)
好吧,如果您想要在文件中显示 txt 的内容,它
div
或多或少是这样的。您将
div
要显示的位置和按钮放置在执行操作的位置。我希望能有所帮助。
根据文件在哪一侧,您可以通过以下两种方式之一进行:从客户端设备(在 A 中解释)或从服务器(在 B 中解释)读取文件。
你的问题:
我将在 (C) 中回答。
A. 如果文件在客户端
您可以使用FileReader来完成。客户端必须通过单击按钮来选择文件:
笔记:
此方法支持:
B. 如果文件在服务器端
你可以用 jQuery 来做。在示例中,在输入中输入了文件的 url,当按下按钮时,通过Ajax get 方法从服务器请求文件。如果响应成功,文件将显示在一个 div 中。
C. 使用哪种方法?
在第一种情况下没有,因为服务器根本不干预。在第二种情况下,GET 方法。
来源:http ://www.cs.tut.fi/~jkorpela/forms/methods.html
您可以使用以下方法解决它:
API FileReader
这允许动态读取用户输入的文件。JSON.parse
允许我们将字符串JSON
转换为对象的方法。例子:
上传文件后,您可以将文件保存在 SessionStorage 或 LocalStorage 中,两者都非常好,因为它允许您在客户端存储数据,最大约为 5mb。一个和另一个的区别是,如果关闭浏览器,Session 会被删除,而另一个则不会。
调用如下
您将“variableJson”传递给名称为“variable”的会话或局部变量。这是作为临时文件保存在pc上的。如果您需要对其进行救援,应按如下方式进行。
如果您需要删除,只需
我希望它对你有帮助。
而且 post 总是更好,因为 get 显示了您通过 url 发送到服务器的参数。如果我需要攻击您的网站,它被认为是“易受攻击的”,因为这样我开始了解您的服务器是如何工作的,以及如何通过这个块删除它。
祝你工作顺利:D
假设文件在服务器上,我们将使用jquery的.load()加载它并将内容存储在textarea中,以便您可以编辑它,一旦放置,您想要对文件进行的注释或更改,捕获其内容并通过$.post发送到 php 脚本以保存更改。
形式:
在 script.php 中将内容添加到文件末尾: