我有一个 VBScript,它可以检查 HTML 表单,用固定值填充它,然后提交它。到目前为止它工作正常,但现在我需要设置将在表单数据中上传的文件的位置。
我相信如果我将位置设置为该值,它就会起作用,但事实并非如此。
<input type='file' name="file_field" value='file_location'/>
另外,我在研究时发现了this。它说...
输入类型=文件 Value:设置或检索控制对象的显示值。当控制对象提交时,这个值会返回给服务器。
有没有办法(通过代码)来填充该输入,即使使用 jQuery?
不。这是不可能的。
出于安全原因,浏览器禁止在文件类型的输入上设置 value 属性,以便在用户未亲自选择任何文件的情况下无法上传文件。
如果您有权访问文件对象或可以动态构造文件对象,则可以通过
files
设置 DataTransfer
。
const transfer = new DataTransfer();
transfer.items.add(new File(['file 1 content'], 'file 1.txt'));
transfer.items.add(new File(['file 2 content'], 'file 2.txt'));
document.querySelector('input').files = transfer.files;
document.querySelector('form')
.addEventListener('submit', e => {
e.preventDefault();
console.log(...new FormData(e.target));
});
<form>
<input name="files" type="file" multiple /> <br />
<button>Submit</button>
</form>