【发布时间】:2014-07-14 18:18:24
【问题描述】:
我想将图片从 Firefox 插件上传到网站。
我知道我可以createElement('canvas'),将 Image 数据转换为 base64 并 XHR POST 数据,但我想看看是否可以让 Firefox 处理它。
通常,用户会在网站上点击浏览,Firefox 会打开File Upload 对话框,选择文件,然后点击打开。
我想从上下文菜单中自动执行此操作,以便可以将浏览器打开的本地文件(即图像)直接上传到目的地。
这可能吗?如何实现?
澄清:
在通过 Firefox 上传的文件选择中,这些是必需的数据:
- 目标形式
- 本地文件位置
- 文件上传对话框中打开按钮附加的操作
在我想创建的上下文菜单情况下:
- 目标形式:将在脚本中进行硬编码
- 本地文件位置:右键单击的文件(即gContextMenu.target.src)
- 操作:这是我想做的,并将“命令”附加到上述按钮的功能(现有的 Firefox 功能)
也就是说,不是手动创建new XMLHttpRequest() 并发布数据,而是使用Firefox 的现有功能。
换句话说,手动将“目标表单”和“本地文件位置”提供给 FILE UPLOAD 的 OPEN 按钮功能,就好像这是执行的过程一样。
【问题讨论】:
-
有可能
-
有多种方法。这是一种方法:(警告这家伙真的很草率)-[上传图片二进制-使用imageshack api](stackoverflow.com/questions/22036442/…)
-
谢谢,但是那个人正在使用 JavaScript、canvs、XHR,正如我所提到的,这不是我想要的 ;)
-
我认为您将不得不使用 XHR。不同之处在于您要使用 FormData。您将 FormData 作为 XHR
.send()或.open()的第一个参数发送,无需 base64,只需使用画布中的mozGetAsFile。 -
好问题的人。下面发布的解决方案让我学到了很多。
标签: javascript ajax firefox-addon firefox-addon-restartless