如果要通过标准目录选择器对话框(“打开文件”对话框的一种变体),我希望从Firefox附加组件(作为WebExtension实现)中选择本地目录。
这可以通过WebExtension完成吗?如果可以,怎么办?
(出于安全性原因,在网站上的常规JavaScript / HTML中是不可能的。请参见Select directory path in JavaScript。但是由于用户应该在某种程度上信任附加组件,所以我想知道那里是否有可能。)
上下文:我想制作一个简单的批量下载程序,使用户可以为多个要下载的文件选择目标目录,而不是将所有文件都放入默认的Downloads文件夹中,但不显示“每次下载均另存为”对话框。
答案 0 :(得分:0)
据我所知,即使在用户干预下,WebExtensions也无法写入任意文件夹。
但是,如果您接受在默认的dowloads文件夹中使用子文件夹,则可以部分满足您的要求。
browser.downloads
API允许您放入包含文件夹的“建议文件名”。它只能是相对路径,并且是相对于默认文件夹的。
如果您要自己开始下载:
(defn weightedprob1
[f cat]
(let [weight 1
ap 0.5
basicprob (fprob f cat)
totals (reduce + (vals (get @fc f)))
bp (/ (+ (* weight ap) (* totals basicprob)) (+ weight totals))]
bp))
如果您不知道姓氏,或者用户启动下载,那么可悲的是Firefox没有与Chrome的onDeterminingFilename
event等效。但是对于批量下载程序,您应该是启动它的人,并且原则上不知道服务器将报告的文件名可以在下载之前通过HEAD请求进行检查(未经测试)。