1
    var {Cc, Ci, Cu} = require("chrome");
    function downloadFile(links) {
    try {
         //new obj_URI object
        var obj_URI = Cc["@mozilla.org/network/io-service;1"].getService(Ci.nsIIOService).newURI(links, null, null);
        //new file object
        var obj_TargetFile = Cc["@mozilla.org/file/local;1"].createInstance(Ci.;

        //set file with path
        obj_TargetFile.initWithPath("c:\\temp\\1.jpg");
        //if file doesn't exist, create
        if(!obj_TargetFile.exists()) {
          obj_TargetFile.create(0x00,0644);
        } 
         obj_TargetFile.reveal();
        //new persitence object
        var obj_Persist = Cc["@mozilla.org/embedding/browser/nsWebBrowserPersist;1"].createInstance(Ci.nsIWebBrowserPersist);

        // with persist flags if desired
        const nsIWBP =  Ci.nsIWebBrowserPersist;
        const flags =   nsIWBP.PERSIST_FLAGS_REPLACE_EXISTING_FILES | 
                        nsIWBP.PERSIST_FLAGS_DONT_CHANGE_FILENAMES |
                        nsIWBP.PERSIST_FLAGS_CLEANUP_ON_FAILURE;

        obj_Persist.persistFlags = flags | nsIWBP.PERSIST_FLAGS_FROM_CACHE;     
        //save file to target
        obj_Persist.saveURI(obj_URI,null,null,null,null,obj_TargetFile,null);
      } catch (e) {
        console.error(e);
      }
    };

这个在 firefox sdk 1.14 上用于静默下载文件的工作代码我如何将“ 1.jpg ”的名称更改为真实下载文件名?

nsIWBP.PERSIST_FLAGS_DONT_CHANGE_FILENAMES

没有任何结果。

4

0 回答 0