возможно ли программно создать файл, а затем добавить его в <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
(то же самое, когда файл не выбран во входных данных)
Есть ли обходной путь для загрузки созданного программным путем файла ?
Спасибо за помощь