Полезная информация

Многие проблемы быстрее решаются поиском по форуму и чтением FAQ, чем созданием новой темы и томительным ожиданием ответа.

№120-09-2014 08:37:58

fireday2
Участник
 
Группа: Members
Зарегистрирован: 10-09-2014
Сообщений: 35
UA: Chrome 37.0

Загрузка файла с отображением прогресса

Файл загружаю из main.js так:

Выделить код

Код:

Cu.import("resource://gre/modules/PrivateBrowsingUtils.jsm");
var file = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsILocalFile);
file.initWithPath(DlgResult);
var wbp = Cc['@mozilla.org/embedding/browser/nsWebBrowserPersist;1'].createInstance(Ci.nsIWebBrowserPersist);
var ios = Cc['@mozilla.org/network/io-service;1'].getService(Ci.nsIIOService);
var uri = ios.newURI(downloadurl, null, null);
wbp.saveURI(uri, null, null, null, "", file, null);

Нужно отображение прогресса загрузки, и отображение загруженного файла в общем списке загрузок
Дайте хотя бы инфу что гуглить

з.ы. не знаю как передать последним параметром privacy
var privacy = PrivateBrowsingUtils.privacyContextFromWindow(urlSourceWindow);
Что за urlSourceWindow ?

Отредактировано fireday2 (20-09-2014 15:51:49)

Отсутствует

 

№224-09-2014 19:43:10

fireday2
Участник
 
Группа: Members
Зарегистрирован: 10-09-2014
Сообщений: 35
UA: Chrome 37.0

Re: Загрузка файла с отображением прогресса

Разобрался

sDownloadUrl - путь к файлу на сервере
sPath - путь к файлу (с одинарным бекслешем, например "D:\my-folder\audio". Если указать двойные бекслешы - работать будет, но тогда открыть директорию куда был загружен файл через стандартное меню загрузки не выйдет)
sFileName - имя загружаемого файла с расширением (например, my-music.mp3)

Выделить код

Код:

function df(sDownloadUrl, sPath, sFileName)
{
    Cu.import("resource://gre/modules/Downloads.jsm");
    Cu.import("resource://gre/modules/osfile.jsm")
    Cu.import("resource://gre/modules/Task.jsm");

    Task.spawn(function () {        
        let list = yield Downloads.getList(Downloads.ALL);
        try {
            let download = yield Downloads.createDownload({
            source: sDownloadUrl,
            target: OS.Path.join(sPath,sFileName)
        });
        console.log('OS.Constants.Path.tmpDir='+OS.Constants.Path.tmpDir);
        list.add(download);
        try {
            download.start();
        } 
            finally {
            }
        }
            finally {
            }
    }).then(null, Cu.reportError);    
}

Отсутствует

 

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]