1

我想编写一个自动在页面上上传文件的浏览器插件。所以这将在纯 Javascript 中完成。

这就是我所拥有/知道的:

  1. input#someId文件上传输入

  2. 计算机中的文件名和位置

我现在正在尝试“硬编码”console作为“概念证明”,但我无法让它发挥作用。

我试过这两种方法:

  1. inputElement.click()inputElement那个querySelector输入一样。

  2. initMouseEvent在没有 jquery 的情况下使用相当于 jquery 的“触发器”方法吗?但给了我错误Uncaught TypeError: Cannot read property 'dispatchEvent' of null

所以我的问题是:

  1. 如何触发文件上传元素的点击输入?

  2. 更好:如何完全处理上传?基本上传递文件名+位置以开始上传(例如当用户单击“确定”从对话框中打开文件时)

更新 1:

我正在阅读此http://www.thecssninja.com/javascript/fileapi 也许无法从文件系统上传文件。这些替代方案怎么样:

  1. 我们可以从 url (http) 获取文件

  2. 该文件只是图像并且在 Javascript 内存中(base64)

如果可以自动上传并绕过对话框并通过本地文件系统搜索文件,上述任何一项都应该是OK的。我在想如果可以拖动图像 DOM 甚至画布怎么办?

4

1 回答 1

1

正如人们评论的那样,你不能那样做。出于安全原因,您绝对无法访问以编程方式填充文件输入。想一想,有些家伙可以添加一个简单的脚本来从您的计算机中窃取文件,而您甚至都不知道!

据我所知,做不到。

于 2014-10-17T20:42:12.060 回答