Можно ли добавить программно созданный файл для ввода на JavaScript? - PullRequest
0 голосов
/ 07 февраля 2020

возможно ли программно создать файл, а затем добавить его в <input type="file"> без какого-либо взаимодействия с пользователем? Файл не должен быть из реальной файловой системы, достаточно просто некоторого набора байтов.

Вход имеет свойство files, которое является экземпляром FileList. Каждый элемент FileList является File.

. Как выяснил я , File можно создать так:

var file = new File(["foo"], "foo.txt", {
  type: "text/plain",
});

С 2017 года это возможно изменить свойство files.

Похоже, единственная оставшаяся часть - создать FileList и затем добавить туда File. Тем не менее, кажется, что конструктор FileList не опубликован c. Когда я запускаю код new FileList(), я просто получаю TypeError: Illegal constructor (если бы он требовал каких-то параметров, он говорил бы что-то о пропущенных параметрах).

Я также пытался использовать уже созданный FileList, но нет успех:

<input type="file" id="fileupload">
var file = new File(["foo"], "foo.txt", {
  type: "text/plain",
});
var input = document.getElementById('fileupload');
input.files[0] = file;   //it's possible to read files[0], but it seems writing is prohibited
console.log(input.files);

Показывает пустой FileList (то же самое, когда файл не выбран во входных данных)

Есть ли обходной путь для загрузки созданного программным путем файла ?

Спасибо за помощь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...