【发布时间】:2015-02-07 21:40:58
【问题描述】:
我有一个这样的文件列表:
FileList {0: File, 1: File, 2: File, File…}
我需要在页面刷新后记住这些文件。如何将它们保存到 cookie 中? (或者有更好的方法吗?)现在我正在这样做$.cookie("result", files); files = $.cookie("result");,但这让我无法解析 [object FileList]。将files 转换为 JSON 也不起作用。
任何想法如何保存 FileList 以便在页面刷新后循环它?
编辑:也许我应该注意我从用户输入中获取 FileList,例如“选择文件”。
分配文件:
HTML 部分:
<input type="file" id="files" name="file" multiple />
JS部分:
$('#files').on('change', readFiles);
function readFiles(event) {
var files = event.target.files; //has FileList {0: File, 1: File, 2: File, File…}
$.cookie.json = true; //converts FileList to json (is correct).
$.cookie("result", files); //cookie registering also works (atleas with strings)
files = $.cookie("result"); //get undefined as a result
for (var i = 0, f; f = files[i]; i++) {
var reader = new FileReader();
reader.readAsText(f, 'utf-8');
}
}
【问题讨论】:
-
请显示一些实际代码。您的
FileList示例不是 javascript。 -
@JonathanM:是的。这就是 DOM
FileList对象在控制台中的显示方式。 -
@Slaks,啊,我把它当作代码,而不是控制台输出。
-
@user3960875,当你说你不能“解析”对象 FileList 时,你不应该解析它。相反,您应该只是引用它,例如
myFileName=files[2]; -
@JonathanM 当以
myFileName=files[2];访问它时,我得到它的格式错误(作为单个字符),例如myFileName=files[0];是[不是第一个文件。
标签: javascript jquery cookies jquery-plugins