jQuery或者js保存文件到本地
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jQuery或者js保存文件到本地相关的知识,希望对你有一定的参考价值。
使用jQuery或者js,点击保存button,弹出保存文件的对话框,将服务器上的文件以xml格式保存到本地,怎么做?
function fake_click(obj)var ev = document.createEvent("MouseEvents");
ev.initMouseEvent(
"click", true, false, window, 0, 0, 0, 0, 0
, false, false, false, false, 0, null
);
obj.dispatchEvent(ev);
function export_raw(name, data)
var urlObject = window.URL || window.webkitURL || window;
var export_blob = new Blob([data]);
var save_link = document.createElementNS("http://www.w3.org/1999/xhtml", "a")
save_link.href = urlObject.createObjectURL(export_blob);
save_link.download = name;
fake_click(save_link);
参考技术A // 浏览文件夹(指定文件路径)
function BrowseFolder()
try
var Message = "Please select the folder path."; //选择框提示信息
var Shell = new ActiveXObject("Shell.Application");
var Folder = Shell.BrowseForFolder(0, Message, 0x0040, 0x11); //起始目录为:我的电脑
//var Folder = Shell.BrowseForFolder(0,Message,0); //起始目录为:桌面
if (Folder != null)
Folder = Folder.items(); // 返回 FolderItems 对象
Folder = Folder.item(); // 返回 Folderitem 对象
Folder = Folder.Path; // 返回路径
if (Folder.charAt(Folder.length - 1) != "\\")
Folder = Folder + "\\";
return Folder;
catch (e)
alert(e.message);
//保存文件
function SaveInfoToFile(folder, fileName)
var filePath = folder + fileName;
var fileInfo = "hahahaha";
var fso = new ActiveXObject("Scripting.FileSystemObject");
var file = fso.CreateTextFile(filePath, true);
file.Write(fileInfo);
file.Close();
以上代码并没有处理xml,关于xml可以找相关资料。 参考技术B 做不了
使用 jquery 将表单数据保存到本地 json 文件中
【中文标题】使用 jquery 将表单数据保存到本地 json 文件中【英文标题】:Save form data into local json file using jquery 【发布时间】:2012-10-17 22:30:00 【问题描述】:我有一个带有一些输入字段的基本表单。我想在提交表单时将表单数据保存到 json 文件中。 json文件中保存的数据格式应该是这样的。
[
"title":"some text","description":"some text","info":"some text","username":"some name",
"title":"some text","description":"some text","info":"some text","username":"some name",
"title":"some text","description":"some text","info":"some text","username":"some name"
]
我尝试使用此代码执行此操作,但我的“story.json 文件”中没有保存任何数据
$('form').submit(function()
$.ajax(
type: 'POST',
dataType: 'json',
url: 'story.json',
data: $(this).serialize(),
success: function(data)
alert(data.message);
,
failure: function (data)
alert('Please try again');
);
);
我想将此表单数据保存在我的本地文件中。 请帮助我找到正确的方法。谢谢
【问题讨论】:
我会说,除非你擅长配置你的 http 服务器,否则你需要一种服务器端语言,你有吗? 您可以将支持它的浏览器保存到 localStorage 而无需服务器...这是一个可行的解决方案吗? 是的,没有服务器端语言是不可能的。这就是答案。谢谢 【参考方案1】:您需要将数据发布到一个简单的 php 文件...
喜欢url: 'story.php'
在该 php 文件中使用 fopen
创建一个“story.json”并存储该 json
编辑:如果你想使用 serialize()
而不是使用这样的东西
data:'mydata':$(this).serialize()
在php文件中
parse_str($_POST['mydata'],$newarray) ;
echo json_encode($newarray);
【讨论】:
ok..那么如何使用 .serialize() 或 .serializeArray() 方法将上述格式的表单数据保存在 json 对象中。【参考方案2】:JavaScript 无法保存到文件,除非它是 FireFox 插件。
您所做的是发布一个表单(将其发送到网络服务器),然后让服务器端脚本处理它。
序列化不会将表单值转换为 JSON 字符串:
http://api.jquery.com/serialize/
当你使用 $.post 时,你必须在 $('form').submit(function() 中返回 false ,否则浏览器会为你提交表单。
提交表单是当您单击一个按钮时,整个页面会变白片刻,然后您会得到一个新页面。
Ajax ($.post, $.get, $.getJson ...) 是指您在不刷新页面的情况下向服务器发送信息。谷歌地图就是一个很好的例子。
【讨论】:
【参考方案3】:在表单 jQuery 对象上调用 serialize 方法不会返回其数据的 JSON 表示。它返回其数据的查询字符串表示。如上所述,您将需要使用服务器端脚本来解释(和操作)发送的数据并将其作为 JSON 存储在文件中。
【讨论】:
以上是关于jQuery或者js保存文件到本地的主要内容,如果未能解决你的问题,请参考以下文章