我正在开发一个Firefox扩展,下载从当前页面的图片在Facebook中。 我不知道是否有更改默认下载目录,以X的方式,更优选要求用户输入一个。 由于如何在Firefox中更改下载文件夹的欺骗?
0
A
回答
1
此信息存储在首选项文件,并且可以about:config
下观看。如果优先browser.download.useDownloadDir
设置为true
在browser.download.dir
设置下载目录会自动使用。如果这个变量设置为false
浏览器将询问用户保存该文件,在browser.download.lastDir
在对话框中选择最初设置的目录。
但是,如果你正在编写一个扩展,你可能不希望使用这些偏好,而是让用户选择一个下载目录。你会使用nsIFilePicker为,沿着这些线路:
var filePicker = Components.classes["@mozilla.org/filepicker;1"]
.createInstance(Components.interfaces.nsIFilePicker);
filePicker.init(window, "Please choose a download directory", filePicker.modeGetFolder);
if (filePicker.show() == 0)
window.alert("Directory chosen: " + filePicker.file.path);
1
//give your file details in this line
downloadFile(title, url, fileType);
// Don't change anything below if you don't know what it does
function getDownloadFile(defaultString, fileType)
{
var nsIFilePicker = Components.interfaces.nsIFilePicker;
var fp = Components.classes["@mozilla.org/filepicker;1"].createInstance(nsIFilePicker);
fp.init(window, "Save As", nsIFilePicker.modeSave);
try {
var urlExt = defaultString.substr(defaultString.lastIndexOf(".")+1, 3);
if (urlExt!=fileType) defaultString += "." + fileType
}catch(ex){}
fp.defaultString = defaultString;
fp.appendFilter(fileType, "*." + fileType);
var rv = fp.show();
if (rv == nsIFilePicker.returnOK || rv == nsIFilePicker.returnReplace) {
var file = fp.file;
var path = fp.file.path;
return file;
}
return null;
}
function downloadFile(title, url, fileType)
{
var file = getDownloadFile(title, fileType);
var persist = Components.classes['@mozilla.org/embedding/browser/nsWebBrowserPersist;1'].createInstance(Components.interfaces.nsIWebBrowserPersist);
var ios = Components.classes['@mozilla.org/network/io-service;1'].getService(Components.interfaces.nsIIOService);
var uri = ios.newURI(url, null, null);
var target = ios.newFileURI(file)
var xfer = Components.classes["@mozilla.org/transfer;1"]
.createInstance(Components.interfaces.nsITransfer);
xfer.init(uri, target, "", null, null, null, persist);
persist.progressListener = xfer;
persist.saveURI(uri, null, null, null, null, file);
}
相关问题
- 1. 在C++中欺骗文件描述符
- 2. 欺骗服务器加载文件更快?
- 3. 软件arp中毒,mac欺骗,ip欺骗
- 4. makefile修改时间欺骗?
- 5. 如何在java中欺骗ip
- 6. 你如何欺骗HTTP_REFERER?
- 7. 如何欺骗http referer
- 8. 如何欺骗预处理
- 9. 在Opera中欺骗UserAgent
- 10. 在WebBrowser中欺骗URL
- 11. 欺骗SQL Server
- 12. 欺骗libdc1394
- 13. 电子邮件欺骗Cpanel
- 14. python中的IP欺骗3
- 15. 欺骗postMethod(Java中的apache)?
- 16. C#:Firefox webdriver:如何将文件下载到特定文件夹
- 17. 如何更改下载的默认文件夹(浏览器)?
- 18. Chrome扩展 - 更改具体下载的下载文件夹
- 19. 欺骗反射器
- 20. 用SinonJS欺骗API?
- 21. MIME类型欺骗
- 22. 防止IP欺骗
- 23. ICMP欺骗帮助
- 24. IP地址欺骗
- 25. C#如何欺骗WebRequest的IP地址
- 26. 获取Firefox下载文件夹
- 27. 负载测试TCP和IP欺骗
- 28. IP地址欺骗/更改为在本地机器上测试
- 29. iframe的欺骗ip地址
- 30. 如何防止API请求源欺骗?
ü要程序上的帮助或什么 – 2012-01-27 11:44:46
是的,我找的,就像saveURL的方法是用于保存文件。 – 2012-01-27 13:24:16