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保存文件到本地的主要内容,如果未能解决你的问题,请参考以下文章

js中如何将某地址的图片保存到本地指定文件夹中

js如何保存文件

JS实现保存当前网页HTML到本地

js 保存图片到本地

js怎么把id存到浏览器本地

怎么把弄到js文件里