我有多个输入类型的文件。当我添加照片时,将上面的照片视图添加为照片。问题是删除照片。当我单击关闭图标并删除照片时,照片仅从元素html中删除,而不从输入文件中删除
然后我认为我可以像保留当前照片那样创建一个数组。我做到了,但是我不知道如何为输入类型的文件设置值。浏览器具有安全性并且不允许这样做。
这将是我当前的数组
var current_array = [];
$(".photos").on("click", "li .fa-times", function () {
if ($(this).next().attr("data-name") != undefined) {
CreateSelectForDeletedPhoto($(this).next().attr("data-name"), $("select[name='DeletePhotos']"));
}
//this delete from html
$(this).parent().remove()
//this has to delete from input but not did it
DeleteFileFromInput($("#Upload"), $(this).next().data("name"));
})
这是DeleteFileFromInput函数
function DeleteFileFromInput(wrapper, fileName) {
if (current_array.length == 0) {
var files = document.getElementById("Upload").files;
var array = MakeAnArrayOfFiles(files);
current_array = SpliceFileFromArray(array, fileName);
}
else {
SpliceFileFromArray(current_array, fileName);
}
}
这是附加功能
我从输入中获取所有文件并制作数组
function MakeAnArrayOfFiles(files) {
var array = [];
for (var file of files) {
array.push(file);
}
return array;
}
然后每次用户想要删除的拼接文件
function SpliceFileFromArray(array, fileName) {
for (var i = 0; i < array.length; i++) {
if (array[i].name == fileName) {
if (i == 0) {
array.splice(i - 1, 1);
} else {
array.splice(i, 1);
}
}
}
return array;
}
最后我有一个要上传文件的数组,但是如何设置该数组为输入?