如何为输入类型文件设置值

时间:2019-06-06 14:04:49

标签: javascript html css

我有多个输入类型的文件。当我添加照片时,将上面的照片视图添加为照片。问题是删除照片。当我单击关闭图标并删除照片时,照片仅从元素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;
}

最后我有一个要上传文件的数组,但是如何设置该数组为输入?

0 个答案:

没有答案