downloads.download()
Функция download() API downloads загружает файл по заданному URL и другим опциональным параметрам.
Если URL использует протокол HTTP или HTTPS, запрос включает все соответствующие куки, то есть куки, установленные для хоста URL, флага secure, пути и так далее. Используются стандартные куки, куки из обычной сессии браузера, если:
- используется опция
incognito, тогда используются куки из приватного режима. - используется опция
cookieStoreId, тогда используются куки из указанного хранилища.
Если указаны как filename, так и saveAs, отображается диалог «Сохранить как», заполненный filename.
Это асинхронная функция, которая возвращает Promise.
Синтаксис
let downloading = browser.downloads.download( options // object )
Параметры
options-
Объект
object, определяющий файл для загрузки и другие настройки. Он может содержать следующие свойства:-
allowHttpErrorsНеобязательно -
Флаг
boolean, позволяющий продолжить загрузку даже при возникновении HTTP-ошибок. Например, это позволяет загружать страницы с ошибками сервера. Значение по умолчаниюfalse. При значениях:-
false, загрузка прерывается при обнаружении HTTP-ошибки. -
true, загрузка продолжается при обнаружении HTTP-ошибки, и ошибка HTTP-сервера не сообщается. Однако, если загрузка терпит неудачу из-за ошибок, связанных с файлом, сетью, пользователем или другими причинами, ошибка сообщается.
-
-
bodyНеобязательно -
stringпредставляющий тело запроса POST. -
conflictActionНеобязательно -
Строка, представляющая действие, которое должно быть выполнено в случае конфликта имён файлов, как определено в типе
downloads.FilenameConflictAction(по умолчанию "uniquify", если не указано). -
Идентификатор хранилища куки контекстуальной личности, с которой связана загрузка. Если опущено, используется хранилище куки по умолчанию. Требуется разрешение "куки" API.
-
filenameНеобязательно -
stringпредставляющий путь к файлу относительно каталога загрузок по умолчанию — это задаёт место сохранения файла и имя файла. Абсолютные пути, пустые пути, компоненты пути, начинающиеся и/или заканчивающиеся точкой (.), и пути, содержащие обратные ссылки (../) приведут к ошибке. Если опущено, это значение будет по умолчанию равно имени файла, уже присвоенному загружаемому файлу, и расположено сразу в каталоге загрузок. -
headersНеобязательно -
Если URL использует протокол HTTP или HTTPS,
arrayobjectsпредставляющий дополнительные HTTP-заголовки для отправки с запросом. Каждый заголовок представлен как объект словаря, содержащий ключиnameи либоvalue, либоbinaryValue. Заголовки, запрещённыеXMLHttpRequestиfetchуказать нельзя, однако Firefox 70 и выше позволяет использовать заголовокReferer. Попытка использования запрещённого заголовка приводит к ошибке. -
incognitoНеобязательно -
boolean: если присутствует и установлено в true, то эта загрузка будет связана с приватной сессией просмотра. Это означает, что она будет отображаться только в менеджере загрузок для любых открытых в настоящее время приватных окон. -
methodНеобязательно -
stringпредставляющий HTTP-метод, который необходимо использовать, еслиurlиспользует протокол HTTP[S]. Может быть либо "GET", либо "POST". -
saveAsНеобязательно -
booleanопределяющий, показывать ли диалог выбора файла для выбора имени файла (true) или нет (false).Если этот параметр опущен, браузер будет показывать или скрывать диалог выбора файла в соответствии с общими пользовательскими настройками для этого поведения (в Firefox эта настройка называется «Всегда спрашивать, куда сохранить файлы» в about:preferences или
browser.download.useDownloadDirв about:config).Примечание: Firefox для Android генерирует ошибку, если
saveAsустановлено вtrue. Параметр игнорируется, еслиsaveAsравноfalseили не указано. url-
stringпредставляющий URL для загрузки.
-
Значение возврата
Promise. Если загрузка началась успешно, промис будет выполнен со значением id нового downloads.DownloadItem. В противном случае промис будет отклонен с сообщением об ошибке, взятым из downloads.InterruptReason.
Если вы используете URL.createObjectURL() для загрузки данных, созданных в JavaScript, и хотите позже аннулировать URL объекта (с помощью revokeObjectURL) (что настоятельно рекомендуется), вам нужно сделать это после завершения загрузки. Для этого прослушивайте событие downloads.onChanged.
Совместимость с браузерами
| Рабочие столы | Мобильные | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | WebView Android | Chrome Android | Firefox for Android | Opera Android | Safari на IOS | Samsung Internet | |
download |
Да | 79 | 47 | ? | Да | Нет | ? | ? | 48–79 | ? | Нет | ? |
allowHttpErrors |
Нет | Нет | 71 | ? | Нет | Нет | ? | ? | Нет | ? | Нет | ? |
body |
Да | 79 | 52 | ? | Да | Нет | ? | ? | 52–79 | ? | Нет | ? |
conflictAction |
Да | 79 | 47 | ? | Да | Нет | ? | ? | 48–79 | ? | Нет | ? |
cookieStoreId |
Нет | Нет | 92 | ? | Нет | Нет | ? | ? | Нет | ? | Нет | ? |
filename |
Да | 79 | 47 | ? | Да | Нет | ? | ? | 48–79 | ? | Нет | ? |
headers |
Да | 79 | 47Referer заголовки поддерживаются с версии 70. |
? | Да | Нет | ? | ? | 48–79 | ? | Нет | ? |
incognito |
Нет | Нет | 57 | ? | Нет | Нет | ? | ? | 57–79 | ? | Нет | ? |
method |
Да | 79 | 47POST поддерживается с версии 52. |
? | Да | Нет | ? | ? | 48–79POST поддерживается с версии 52. |
? | Нет | ? |
saveAs |
Да | 79 | 52До версии 58, если этот параметр опускался, Firefox никогда не отображал диалог выбора файла, независимо от значения пользовательских настроек браузера. |
? | Да | Нет | ? | ? | Нет | ? | Нет | ? |
Примеры
Следующий фрагмент кода пытается загрузить пример файла, также указывая имя файла и место сохранения, и uniquify в качестве значения опции conflictAction.
function onStartedDownload(id) { console.log(`Started downloading: ${id}`); } function onFailed(error) { console.log(`Download failed: ${error}`); } let downloadUrl = "https://example.org/image.png"; let downloading = browser.downloads.download({ url : downloadUrl, filename : 'my-image-again.png', conflictAction : 'uniquify' }); downloading.then(onStartedDownload, onFailed);
Примечание: Этот API основан на API chrome.downloads Chromium.
© 2005–2023 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/downloads/download