使用saveURI()进行不完整下载

时间:2014-07-20 07:00:28

标签: javascript firefox download firefox-addon

所以我尝试使用以下链接下载PDF文件: http://www.freecybers.com/components/com_flexpaper/assets/zine/php/services/simpleview.php?doc=regus.pdf

这是我的代码:

function downPdf() {
    linkPdf = getPdfLink();
    var webBrowserPersist = Components.classes["@mozilla.org/embedding/browser/nsWebBrowserPersist;1"]
                        .createInstance(Components.interfaces.nsIWebBrowserPersist);
    var localFile = Components.classes["@mozilla.org/file/local;1"]
                .createInstance(Components.interfaces.nsILocalFile);
    localFile.initWithPath("D:\\file.pdf")
    var iOService = Components.classes["@mozilla.org/network/io-service;1"]
                .getService(Components.interfaces.nsIIOService);
    link = iOService.newURI(linkPdf, null, null);
    webBrowserPersist.saveURI(link, null, null, null, null, localFile, null);  
}

PDF大小为114 KB,但下载始终以108 KB停止,因此文件已损坏。有人知道出了什么问题吗?

1 个答案:

答案 0 :(得分:3)

解决了它。试图弄乱持久的旗帜,我补充道:

 webBrowserPersist.persistFlags = webBrowserPersist.PERSIST_FLAGS_AUTODETECT_APPLY_CONVERSION;

使用saveURI()之前。看起来这是一个编码问题。