如何给赋值?

zhangxulovefangfang zhangxulovefangfang 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我知道由于安全因素<input type="file" id="uploadFile" /> 是只读的,但我要动态上传多个文件,我必须要给这个组件赋值。

以下这种方式我已经试过,是可以的
var path = "c:\\123.text";
var uploadFile = document.getElementById("uploadFile");
var WshShell=new ActiveXObject("WScript.Shell");
//将路径放入剪切板
window.clipboardData.setData('text', path);
uploadFile.focus();
//Ctrl + A 操作
WshShell.sendKeys("^a");
//Ctrl + V 操作(sendKeys对于中文赋值操作显得无力,所以只能模拟键盘操作)
WshShell.sendKeys("^v");

但我有多个已知的本地文件路径,需要循环通过上述方法逐个上传,在循环的过程中,如果我把鼠标点击到其他的可以输入的组件中,例如一个word文档,或eclipse的控制台中,就会在那里出现被ctrl+v 的路径,从而影响了以上方式的赋值。也就是说,只要使用上述方式循环上传本地文件,就不能做其他的涉及到鼠标焦点的事了,这样用户是肯定不能接受的,试想一下,用户上传100个文件,而且都不小,在上传的过程中,用户想去写个文档,或ctrl+c操作都会影响到文件上传。

难道就没有其他的方式实现给<input type="file" id="uploadFile" />赋值吗,用控件也行,只要能赋值,怎么都行,请教各位大侠了,多谢多谢!
...全文

相关推荐

评论 6
收藏 已收藏
分享
返回顶部
zhangxulovefangfang
JavaScript 87,984 成员 224,681 内容