我想写一个浏览器插件,自动将文件上传到页面上。所以这将在纯Javascript中完成。只通过Javascript触发文件上传
这是我/知道:
在计算机中的文件上传输入
文件的名称和位置
input#someId
我想“硬编码“在console
现在作为”概念验证“,但我不能得到它的工作。
我已经尝试了这两种方法:
inputElement.click()
为inputElement
是输入的querySelector
。使用
initMouseEvent
从what's the equivalent of jquery's 'trigger' method without jquery?但给了我错误Uncaught TypeError: Cannot read property 'dispatchEvent' of null
所以我的问题是:
如何触发点击文件上传元素的输入?
更好:如何完全处理上传?基本上通过文件名+位置上传到启动(当用户点击像OK打开从对话框中选择文件)
更新1:
我是从阅读本http://www.thecssninja.com/javascript/fileapi 也许上传文件文件系统是不可能的。如何对这些备选方案:
我们可以从网址(http)的
的文件仅仅是图像和Javascript中存储的(Base64)
任何上述的获取文件应该可以,如果他们可以自动上传并绕过对话框并通过本地文件系统搜索文件。我在想,如果图像DOM甚至画布可以被拖动?
您实际上无法做到这一点,浏览器不会让您以编程方式触发文件上传器出于安全目的。必须有用户交互 – Brennan 2014-10-17 20:10:29
从用户机器上自动上传文件将是一个主要的安全风险。文件上传需要手动用户交互(因此需要明确同意)。如果您访问过的网站自动将您的浏览器设置上传到远程服务器,您是否希望它? – Terry 2014-10-17 20:12:54
http://stackoverflow.com/questions/15249185/local-chrome-extension-to-set-file-of-input-type-file – epascarello 2014-10-17 20:13:24