gpt4 book ai didi

html - 文件字段 - 追加文件列表

转载 作者:行者123 更新时间:2023-11-28 00:08:47 25 4
gpt4 key购买 nike

我做了一个简单的文件字段:

<input type="file" name="pictures_array[]" multiple accept="image/*" id="page_pictures_array" />

和一些用于列出文件的 HTML5 文件 API 代码:

$('.page-form #page_pictures_array').change(function(evt) {
var file, files, reader, _i, _len;
files = evt.target.files;
console.log(files);
$('#file-list').empty();
for (_i = 0, _len = files.length; _i < _len; _i++) {
file = files[_i];
reader = new window.FileReader;
reader.onload = (function(file) {
return function(e) {
var src;
src = e.target.result;
return $("<li>" + file.name + " - " + file.size + " bytes</li>").prepend($('<img/>', {
src: src,
"class": 'thumb'
})).appendTo($('#file-list'));
};
})(file);
reader.readAsDataURL(file);
}
});

(参见 here)

但是,由于我预计我的用户确实非常愚蠢,所以我确信他们会选择一个文件,然后再次单击上传字段以选择下一个。但是,<input type="file"> 的列表每次都会使用新选择的图像进行重置。

如何确保新文件附加到 <input>的数组,这样我就不会被愤怒的用户评论淹没?

最佳答案

我也在寻找这个问题的答案,我认为其他人已经这样做了。但是,如果您查看文件列表 W3 引用 http://www.w3.org/TR/FileAPI/#dfn-filelist它说它是只读的....

编辑:现在是一个大代码,经过一些改进,使复制/粘贴变得困难。但我开始创建一个变量来保存所有 tmp 文件。

var tmp_files = new Array();

然后当我添加一个新文件时,我会像这样将文件推送到该数组

tmp_files.push(file);

在所有的插入/删除之后(我有另一个 var 来保存删除)当用户点击发送文件时我有这段代码用我想要的文件制作表单数据

var data = new FormData(); var count = 0;
$.each(tmp_files, function(i, file){
if(del_files.indexOf(file.name)== -1){
data.append(count, file);
count++;
}
});

然后我只是通过 ajax 发送 var 数据并保存它们。您可以使用 $data = $_FILES; 获取它们;

希望对你有帮助。

关于html - 文件字段 - 追加文件列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16742956/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com