我想编写一个浏览器插件,自动在页面上上传文件。所以这将在纯Javascript中完成。
这是我拥有/知道的:
-
文件上传输入的
input#someId
-
计算机中的文件名和位置
我现在正在尝试在console
中"硬编码"作为"概念证明",但我无法让它工作。
我尝试了这两种方法:
-
inputElement.click()
inputElement
是该输入的querySelector
。 -
使用
initMouseEvent
相当于没有jquery的jquery的"触发器"方法? 但给了我错误Uncaught TypeError: Cannot read property 'dispatchEvent' of null
所以我的问题是:
-
如何触发文件上传元素的点击输入?
-
更好:如何完全处理上传?基本上传递文件名+位置以开始上传(例如当用户单击"确定"从对话框中打开文件时(
更新 1:
我正在阅读这个 http://www.thecssninja.com/javascript/fileapi也许无法从文件系统上传文件。这些替代方案怎么样:
-
我们可以从网址(http(中获取一个文件
-
该文件只是图像,在Javascript内存(base64(中
如果上述任何一种都可以自动上传并绕过对话框并通过本地文件系统搜索文件,则应该没问题。我在想如果图像 DOM 甚至画布可以拖动怎么办?
正如人们评论的那样,你不能那样做。出于安全原因,您绝对无法访问以编程方式填充文件输入。想想看,某个家伙可以添加一个简单的脚本来从您的计算机中窃取文件,而您甚至不会知道!
据我所知,做不到。