我目前正在尝试从网上下载一个小型二进制文件,以便使用该API将其上传到其他网站。
以前的版本似乎有“文件”API模块用于此类目的,但我看不到与最新版本(1.14)相似的任何内容。
要下载的文件将保存在某种形式的缓存中(最好是浏览器缓存),其路径存储在某处,然后通过POST上传到另一个URL。
当这个过程完全在后台发生时,我该如何处理呢?
我查看了how to download a file页面,但无法确定下载位置。
“Downloads”目录是否有变量URI,并且常规Add-On是否具有写入权限?
这很重要,因为附加组件必须能够在各种平台上正常运行。
答案 0 :(得分:1)
你可以使用pref,browser.download.lastDir
,它应该适用于windows / mac,因为它将以OS格式保存。但是,如果此人之前从未下载任何内容,则可能无法始终设置pref。在这种情况下,您必须自己构建目录。
var dir = require("sdk/preferences/service").get('browser.download.lastDir');
要自己构建目录,您必须更深入一点。在MDN上查看有关File I/O的有关示例的文章。 DfltDwnld
键应该为您提供所需的目录。
您的加载项将具有对Firefox具有写入权限的所有内容的写入权限。