Надежно идентифицировать Файловые Объекты в JavaScript, как Ха sh или около того - PullRequest
0 голосов
/ 15 апреля 2020

Для загрузки файлов в веб-браузер я реализовал файловую очередь. Это просто массив, в котором хранятся файловые объекты.

var filecache = new Array();
$(".fileinput").on("change", function (e) {
    $.each(e.target.files, function (k, file) {
        filecache.push(file);
    });
});

При использовании этого массива мне нужна функция для удаления определенных c файлов из этого массива.

Файловый объект в JavaScript содержит только несколько свойств: https://developer.mozilla.org/en-US/docs/Web/API/File

Поэтому, когда я хочу удалить указанный файл c из этого FileObject-Aray, я могу использовать эти свойства , Но достоверно ни один из них. Два или более файла в этом массиве могут иметь одно и то же имя, поэтому свойство name не будет моим выбором.

Интересно, могу ли я каким-либо образом создать Ha sh, уникальный ключ или что-то подобное? из свойств, которые у меня есть, чтобы определить конкретный c файл. Есть ли способ решить эту проблему? Я знаю, хэши болезненны в JavaScript, но, может быть, кто-то знает другой практический способ.

1 Ответ

0 голосов
/ 15 апреля 2020

Вы можете добавить свойство id к объекту файла и затем поместить его в массив.

id генерация может быть такой же тривиальной, как и функция с состоянием, которое возвращает увеличенное значение, или вы можете go еще дальше и вычислить MD5 или CR C из BLOB-объекта.

...