在客户端保存javascript FormData()对象

时间:2018-05-01 12:07:36

标签: javascript html5 cookies local-storage client-side

我有一个html页面,其中包含一个包含一些文本和文件输入元素的表单元素 这是使用ajax调用使用建议的方法提交服务器听到:http://stackoverflow.com/questions/166221/how-can-i-upload-files-asynchronously/8758614#8758614
正如您在上面的链接中看到的那样, FormData()对象用作输入数据的容器,我已成功完成了该工作。
但是现在我们要创建一个具有这些html元素的新页面,但是在客户端保存文本和文件输入(Cookie或Local Strorage或...)并在另一个页面中执行ajax提交后者。
我无法在cookie或本地存储中保存新FormData();保存的是一个小字符串:" [object FormData]"而不是输入文件和字符串。
我也尝试JSON.stringify()没有成功;它只返回一个空的JSON(" {}")。
(代码使用jQuery选择器)



var postData = new FormData($(form)[0]);
// var sPostedData = JSON.stringify(postData); // returns: "{}"
var myStorage = window.localStorage; // returns: "[object FormData]"
myStorage.setItem("contentOrder", postData);




请帮助我如何在客户端保存此对象? 先谢谢你。

1 个答案:

答案 0 :(得分:1)

要从表单数据中获取文件,请使用formData.get('file'),其中file是输入的名称。返回的对象将是Blob类型(see如何获取其内容)。

完整的例子可以在这个小提琴中找到:https://jsfiddle.net/skm5m467/1/