通过javascript以编程方式将文件插入HTML输入

Insert files into HTML input programmatically via javascript

本文关键字:文件 插入 HTML 输入 方式 javascript 编程 通过      更新时间:2023-09-26

有没有办法通过javascript将服务器中的文件放入文件类型输入标记中?就像我更改文本类型输入的值一样,我想在文件类型输入中插入一个文件。

我已经尝试过做一些事情,比如:

var _file = new File();
document.getElementById('fileInputId').files[0] = _file;

但似乎input的filelist属性受到了保护,我无法更改其中的文件对象。

我想从服务器中获取一个文件,并将其加载到文件输入中。

有办法解决这个问题吗?

谢谢大家!

如果您需要它进行测试(cypress):

cy.get('input[type=file]').then($input =>
    cy.fixture(fname)
        .then(Cypress.Blob.base64StringToBlob)
        .then(blob => {
            const file = new File([blob], fname, {type});
            const dt = new DataTransfer;
            dt.items.add(file);
            $input[0].files = dt.files;
        });