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

В мире Mozilla происходит много интересных событий. Но вам не нужно постоянно посещать новостные сайты, чтобы быть в курсе всех изменений. Зайдите на ленту новостей Mozilla Россия.

№104-06-2011 00:16:19

LA_
Участник
 
Группа: Members
Зарегистрирован: 27-10-2006
Сообщений: 62
UA: Firefox 4.0

Скачивание файлов

Могут ли расширения скачивать файлы (нужно, в частности, скачивать .torrent файлы - т.е. если пользователь авторизован на сайте, то должны применяться cookies и т.п.)?

Отсутствует

 

№204-06-2011 00:41:43

Крошка Ру
Участник
 
Группа: Extensions
Зарегистрирован: 19-10-2008
Сообщений: 8718
UA: Nightly 7.0

Re: Скачивание файлов

LA_ так браузер безо всяких расширений может скачивать торрент-файлы ;)

Отредактировано Крошка Ру (04-06-2011 01:18:03)

Отсутствует

 

№304-06-2011 01:24:38

Крошка Ру
Участник
 
Группа: Extensions
Зарегистрирован: 19-10-2008
Сообщений: 8718
UA: Nightly 7.0

Re: Скачивание файлов

... если же имелась в виду возможность качать файлы по протоколу BitTorrent , непосредственно браузером , то  Wyzo так может :)

Wyzo - The Media Browser

Отсутствует

 

№404-06-2011 11:25:25

LA_
Участник
 
Группа: Members
Зарегистрирован: 27-10-2006
Сообщений: 62
UA: Firefox 4.0

Re: Скачивание файлов

Крошка Ру,
ок, похоже надо объяснить, что требуется автоматизировать:
1) я кликаю по ссылке с торрентом - браузер должен данную ссылку перехватить (как вариант - показать себя в списке возможных программ для открытия файла "Как Firefoх следует обработать этот файл?");
2) дальше этот файл должен быть автоматически скачан в какую-нибудь temp-папку;
3) затем этот файл должен быть передан другому серверу (~другому компу в сети, он на торрент-трекере не авторизован);
4) потом этот файл должен быть удален.

Могут ли расширения такое делать?

Отсутствует

 

№504-06-2011 11:31:03

=Agasfer=
linux user #526929
 
Группа: Extensions
Откуда: /home
Зарегистрирован: 06-11-2008
Сообщений: 6578
UA: Nightly 7.0

Re: Скачивание файлов

Именно так всё и работает. По крайней мере у меня. Вот только удаления торрент-файлов после их запуска нет, но это настраивается в торрент-клиенте.
Из дополнений : Normal "Open In" Dialog, чтоб фокс запоминал, какой тип файлов какой программе передавать , а то он забывчивый )))  И всё.


Arch Linux & xmonad

Отсутствует

 

№604-06-2011 11:55:07

LA_
Участник
 
Группа: Members
Зарегистрирован: 27-10-2006
Сообщений: 62
UA: Firefox 4.0

Re: Скачивание файлов

С каким сервером у вас все так работает? ;)
Мне надо закачанный торрент-файл передать на NAS (Synology) - чтоб уже NAS сам скачал музыку/видео/т.п.

Отсутствует

 

№704-06-2011 12:44:58

=Agasfer=
linux user #526929
 
Группа: Extensions
Откуда: /home
Зарегистрирован: 06-11-2008
Сообщений: 6578
UA: Nightly 7.0

Re: Скачивание файлов

LA_ пишет

С каким сервером у вас все так работает?

Что-то я не видел в предыдущих сообщениях упоминания сервера. :/  А  "всё так работает" у меня на ubuntu 10.04.2 ( комп и ноут)
Не уверен, что это осуществимо для NAS, но можно попробовать следующий вариант: установить FlashGot, в его настройках указать внешнюю качалку, которая будет складывать торрент-файлы в указанный каталог. Далее, в настройках торрент-клиента (в Deluge, к примеру, такое есть) активируем пункт "Автоматически добавлять .torrent из..." и указываем на каталог с сохранёнными торрент-файлами.

s_1307177157_770e32b684.png

Как-то так. Костыль конечно, но других вариантов пока не придумал.

Отредактировано =Agasfer= (04-06-2011 12:46:04)


Arch Linux & xmonad

Отсутствует

 

№804-06-2011 16:20:29

LA_
Участник
 
Группа: Members
Зарегистрирован: 27-10-2006
Сообщений: 62
UA: Firefox 4.0

Re: Скачивание файлов

собственно, потому я и хочу плагинрасширение для ff написать

возвращаюсь к начальному вопросу: плагинамрасширениям можно скачивать файлы из интернета и сохранять их? можно ли потом получить ссылку на данный файл в локальной сети (типа \\192.168.0.1\temp\downloaded_file.torrent)?

Отредактировано LA_ (05-06-2011 17:35:30)

Отсутствует

 

№904-06-2011 18:52:02

Крошка Ру
Участник
 
Группа: Extensions
Зарегистрирован: 19-10-2008
Сообщений: 8718
UA: Nightly 7.0

Re: Скачивание файлов

плагинам расширениям можно скачивать файлы из интернета и сохранять их?

LA_ ,например это делает DownThemAll!

можно ли потом получить ссылку на данный файл в локальной сети

скорее всего да :angel:

Отредактировано Крошка Ру (04-06-2011 18:57:33)

Отсутствует

 

№1004-06-2011 19:31:58

hydrolizer
Участник
 
Группа: Extensions
Зарегистрирован: 22-07-2009
Сообщений: 1945
UA: Firefox 5.0

Re: Скачивание файлов

LA_ пишет

плагинам можно скачивать файлы из интернета и сохранять их?

Ну уж если расширениям можно:

Выделить код

Код:

const { classes: Cc, interfaces: Ci, utils: Cu } = Components;
try 
{
  Cu.import("resource://gre/modules/Services.jsm");
  var srcURL="http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/latest-mozilla-aurora-l10n/firefox-6.0a2.ru.win32.zip";
  var file=Services.dirsvc.get("Desk", Ci.nsILocalFile);
  file.append(srcURL.replace(/^.*\//,""));
  if (!file.exists()) file.create(0x00,0644);
  var fURI=Services.io.newURI(srcURL,null,null);
  const nsIWBP=Ci.nsIWebBrowserPersist;
  var oPersist=Cc["@mozilla.org/embedding/browser/nsWebBrowserPersist;1"].createInstance(nsIWBP);
  with(nsIWBP) oPersist.persistFlags=PERSIST_FLAGS_REPLACE_EXISTING_FILES | PERSIST_FLAGS_FROM_CACHE;
  oPersist.progressListener=
  {
    onProgressChange: function(aWebProgress,aRequest,aCurSelfProgress,
                  aMaxSelfProgress,aCurTotalProgress,aMaxTotalProgress) {},
    onStateChange: function(aWebProgress, aRequest, aStateFlags, aStatus)
    {
      with(Ci.nsIWebProgressListener)
        if ((aStateFlags & STATE_STOP)==STATE_STOP)
          Services.console.logStringMessage("dowloading completed");
    }
  }
  oPersist.saveURI(fURI,null,null,null,null,file);
  Services.console.logStringMessage("downloading started.");
} catch(err){Services.console.logStringMessage(err+"\n"+err.stack);}

, то плагинам можно и подавно.

Отсутствует

 

№1127-07-2011 20:40:46

LA_
Участник
 
Группа: Members
Зарегистрирован: 27-10-2006
Сообщений: 62
UA: Firefox 4.0

Re: Скачивание файлов

Со скачиванием файлов возник такой вопрос - например, есть ссылка

http://dl.rutracker.org/forum/dl.php?t=3667324

Как мне сохранить файл под тем именем, что отдает rutracker? (srcURL.replace(/^.*\//,"") тут, конечно, не подходит)

Отсутствует

 

№1228-07-2011 12:19:04

LA_
Участник
 
Группа: Members
Зарегистрирован: 27-10-2006
Сообщений: 62
UA: IE 7.0

Re: Скачивание файлов

hydrolizer
какие преимущества скачивания методом, который вы указали, перед XMLHttpRequest?

И, если мне надо скачать файл, а потом тут же загрузить его на другой сервер - может, мне нет смысла сохранять файл в папку temp? Может, мне его в памяти сохранить (только как)?

Отсутствует

 

№1328-07-2011 15:46:21

hydrolizer
Участник
 
Группа: Extensions
Зарегистрирован: 22-07-2009
Сообщений: 1945
UA: Firefox 6.0

Re: Скачивание файлов

LA_ пишет

какие преимущества скачивания методом, который вы указали, перед XMLHttpRequest?

Попробуйте XMLHttpRequest'ом принять файл с бинарными данными размером мегабайт в 100 - увидите.

Отсутствует

 

№1428-07-2011 16:24:17

LA_
Участник
 
Группа: Members
Зарегистрирован: 27-10-2006
Сообщений: 62
UA: IE 7.0

Re: Скачивание файлов

hydrolizer
ок, торрент-файлы - килобайт 20, так что для меня, видимо, разницы нет.

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

Отсутствует

 

№1528-07-2011 18:01:15

hydrolizer
Участник
 
Группа: Extensions
Зарегистрирован: 22-07-2009
Сообщений: 1945
UA: Firefox 6.0

Re: Скачивание файлов

LA_ пишет

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

См. здесь и здесь.

Отредактировано hydrolizer (28-07-2011 18:01:32)

Отсутствует

 

№1628-07-2011 19:58:30

LA_
Участник
 
Группа: Members
Зарегистрирован: 27-10-2006
Сообщений: 62
UA: Firefox 4.0

Re: Скачивание файлов

hydrolizer
а если я скачал файл вашим способом? как мне его загрузить на другой сервер?
(XMLHttpRequest мне не нравится тем, что для ff 6 код придется менять. кстати, XMLHttpRequest тоже использует кукисы браузера?)

Отсутствует

 

№1728-07-2011 21:14:04

LA_
Участник
 
Группа: Members
Зарегистрирован: 27-10-2006
Сообщений: 62
UA: Firefox 4.0

Re: Скачивание файлов

Таак. Если использовать XMLHttpRequest:

Выделить код

Код:

// download the file first
  var req = new XMLHttpRequest();
  req.open('GET', url, false);
  req.overrideMimeType('text/plain; charset=x-user-defined');
  req.send(null);
  if (req.status != 200) return '';

  // upload the file
  req.open("POST", "http://mysite.com/upload", false);
  req.setRequestHeader("Content-Length", req.responseText.length);
  req.sendAsBinary(req.responseText); // ТАК ВЕРНО?
  alert(req.responseText);

Можно ли как-нибудь файл загрузить как поле формы с именем file?

Попробовал:

Выделить код

Код:

var formData = new FormData();
  formData.append("file", req.responseText);
  req.open("POST", "http://mysite.com/upload", false);
  req.send(formData)

но естесно не работает.

Отредактировано LA_ (28-07-2011 22:39:58)

Отсутствует

 

№1824-12-2011 21:34:46

LA_
Участник
 
Группа: Members
Зарегистрирован: 27-10-2006
Сообщений: 62
UA: Firefox 9.0

Re: Скачивание файлов

Использовал я следующий код для загрузки и сохранения файлов локально:

Выделить код

Код:

var downloadCompleted = false;

  // download the file first
  var persist = Components.classes["@mozilla.org/embedding/browser/nsWebBrowserPersist;1"]
                  .createInstance(Components.interfaces.nsIWebBrowserPersist);
  // get OS temp folder
  var file = Components.classes["@mozilla.org/file/directory_service;1"]
                .getService(Components.interfaces.nsIProperties)
                .get("TmpD", Components.interfaces.nsIFile);
  file.createUnique(Components.interfaces.nsIFile.NORMAL_FILE_TYPE, 0666);

  var fURI = Services.io.newURI(url,null,null);
    const nsIWBP = Components.interfaces.nsIWebBrowserPersist;
    const flags = nsIWBP.PERSIST_FLAGS_REPLACE_EXISTING_FILES;
    persist.persistFlags = flags | nsIWBP.PERSIST_FLAGS_FROM_CACHE;

  persist.progressListener = {
    onProgressChange: function(aWebProgress, aRequest, aCurSelfProgress, aMaxSelfProgress, aCurTotalProgress, aMaxTotalProgress) {
      },
    onStateChange: function(aWebProgress, aRequest, aStateFlags, aStatus) {
      if (aStateFlags & Components.interfaces.nsIWebProgressListener.STATE_STOP) {
         downloadCompleted = true; // file has been downloaded        
      }
    }
  }
  persist.saveURI(fURI, null, null, null, "", file);  

  var thread = Components.classes["@mozilla.org/thread-manager;1"]
                        .getService(Components.interfaces.nsIThreadManager)
                        .currentThread;
  while (!downloadCompleted) // emulate synchronous request
    thread.processNextEvent(true);

все работало, но теперь файлы с rutracker'a не скачиваются - возвращается ответ, что скачивание нужно производить со страницы rutracker. При простом клике по ссылке всё, естественно, работает.
Как исправить мой код, чтоб он был эквивалентен клику по ссылке?

Отсутствует

 

№1925-12-2011 08:48:31

hydrolizer
Участник
 
Группа: Extensions
Зарегистрирован: 22-07-2009
Сообщений: 1945
UA: Firefox 10.0

Re: Скачивание файлов

LA_
При скачивании torrent-файла на сервер уходит запрос вот с такими заголовками:

handled request: http://dl.rutracker.org/forum/dl.php?t=1517791
header: Cookie: bb_data=1-17430411-fQfvxu8MATCWxpEXjqCE-1579759053-1324787984-1324787984-4280520409-1; bb_dl=1517791
header: Referer: http://rutracker.org/forum/viewtopic.php?t=1517791
header: Connection: keep-alive
header: Accept-Encoding: gzip, deflate
header: Accept-Language: en-us,en;q=0.5
header: Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
header: User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:10.0) Gecko/20100101 Firefox/10.0
header: Host: dl.rutracker.org

Судя по всему, принимающая сторона смотрит на referrer - а он у вас null. Попробуйте в saveURI задать его в виде, соответствующем url сохраняемого файла. Если не поможет - поэкспериментируйте с содержимым параметра aExtraHeaders сигнатуры метода.

Отсутствует

 

№2025-12-2011 11:40:44

LA_
Участник
 
Группа: Members
Зарегистрирован: 27-10-2006
Сообщений: 62
UA: Firefox 9.0

Re: Скачивание файлов

Проверял через Firebug - запрос выглядит одинаково...
Тем не менее, попробовал:

Выделить код

Код:

var aReferrer = Services.io.newURI(url,null,null);
  persist.saveURI(fURI, null, aReferrer, null, "", file);

не помогло.

Если не поможет - поэкспериментируйте с содержимым параметра aExtraHeaders сигнатуры метода.

расскажите об этом чуть более подробно, пожалуйста

Отсутствует

 

№2109-01-2012 02:46:35

Буратино
Участник
 
Группа: Members
Зарегистрирован: 09-01-2012
Сообщений: 1
UA: Firefox 8.0

Re: Скачивание файлов

Друзья, помогите разобраться с закачкой файлов из интернета.
Возможно я виноват сам, в том что я скачал DM. Теперь и DM не качает и Мазила не качает. Я уже снес DM
но браузер все равно сообщает, чо "закачка передана в DM". А его ужеж то нету. Что делать? ОС Винда 7 Спасибо

Отсутствует

 

№2209-01-2012 02:49:53

mserv
Участник
 
Группа: Members
Зарегистрирован: 15-11-2008
Сообщений: 1025
UA: Nightly 12.0

Re: Скачивание файлов

Буратино пишет

А его ужеж то нету. Что делать?

Наверное плагин остался, удалите.

Отсутствует

 

№2309-01-2012 11:06:23

LA_
Участник
 
Группа: Members
Зарегистрирован: 27-10-2006
Сообщений: 62
UA: Firefox 9.0

Re: Скачивание файлов

вернемся к обсуждаемой теме разработки -
как нужно изменить этот код, чтоб запрос ушел как POST?

Отсутствует

 

Board footer

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