La fonction download()
de l'API downloads
télécharge le fichier, compte tenu de son URL et d'autres préférences optionnelles.
- Si l'
url
spécifiée utilise le protocole HTTP ou HTTPS, la requête inclura tous les cookies actuellement définis pour son nom d'hôte. - Si à la fois le
nom de fichier
etsaveAs
sont spécifiés, la boîte de dialogue Enregistrer sous s'affiche, pré-remplie avec lenom du fichier
spécifié.
C'est une fonction asynchrone qui renvoie une Promise
.
SyntaxeSection
var downloading = browser.downloads.download( options // object )
ParamètresSection
options
- Un
object
spécifiant le fichier que vous souhaitez télécharger et toutes les autres préférences que vous souhaitez définir concernant le téléchargement. Il peut contenir les propriétés suivantes : -
body
Facultatif- Un
string
représentant le corps du message de la requête. conflictAction
Facultatif- Une chaîne représentant l'action que vous voulez effectuer s'il y a un conflit de nom de fichier, tel que défini dans le
downloads.FilenameConflictAction
type (par défaut "uniquify" quand il n'est pas spécifié). filename
Facultatif- Un
string
eprésentant un chemin d'accès au fichier par rapport au répertoire de téléchargement par défaut, qui indique l'emplacement où vous souhaitez enregistrer le fichier et le nom de fichier que vous souhaitez utiliser. Les chemins absolus, les chemins vides et les chemins contenant des références arrières (../
) provoqueront une erreur. Si elle est omise, cette valeur sera par défaut le nom de fichier déjà donné au fichier de téléchargement, et un emplacement immédiatement dans le répertoire de téléchargement. headers
Facultatif- Un
tableau
d'objets
représentant des en-têtes HTTP supplémentaires à envoyer avec la requête si l'URL utilise le protocole HTTP[s]. Chaque en-tête est représenté comme un objet dictionnaire contenant lename
des clés et soitvalue
oubinaryValue
, restreint à ceux autorisés parXMLHttpRequest
. incognito
Facultatif- Un
boolean
: s'il est présent et défini sur true, associez ce téléchargement à une session de navigation privée. Cela signifie qu'il n'apparaîtra dans le gestionnaire de téléchargement que pour les fenêtres privées actuellement ouvertes. method
Facultatif- Un
string
représentant la méthode HTTP à utiliser si l'url
utilise le protocole HTTP[S]. Cela peut être "GET" ou "POST". saveAs
Facultatif-
Un
boolean
qui spécifie s'il faut fournir une boîte de dialogue de sélection de fichier pour permettre à l'utilisateur de sélectionner un nom de fichier (true
), ou non (false
).Si cette option est omise, le navigateur affichera le sélecteur de fichier ou non en fonction de la préférence générale de l'utilisateur pour ce comportement (dans Firefox cette préférence est intitulée "Toujours vous demander où enregistrer les fichiers" dans about:preferences, ou
browser.download.useDownloadDir
dans about:config).Note: Firefox pour Android provoque une erreur si
saveAs
est àtrue
. Le paramètre est ignoré lorsquesaveAs
estfalse
ou non inclus. url
- Un
string
représentant l'URL à télécharger.
Valeur retournéeSection
Une Promise
. Si le téléchargement a démarré avec succès, la promesse sera remplie avec l'id
de la nouvelle downloads.DownloadItem
. Sinon, la promesse sera rejetée avec un message d'erreur.
Si vous utilisez URL.createObjectURL() pour télécharger des données créées en JavaScript et que vous voulez révoquer l'URL de l'objet (avec revokeObjectURL) plus tard (comme il est fortement recommandé), vous devez le faire après le téléchargement. Pour ce faire, écoutez l'événement downloads.onChanged.
Compatibilité du navigateurSection
Le tableau de compatibilité de cette page est généré à partir de données structurées. Si vous souhaitez contribuer aux données, veuillez consulter https://github.com/mdn/browser-compat-data et envoyez-nous une demande .
Ordinateur | Mobile | ||||
---|---|---|---|---|---|
Support simple | Chrome Support complet Oui | Edge Aucun support Non | Firefox Support complet 47 | Opera Support complet Oui | Firefox Android Support complet 48 |
body | Chrome Support complet Oui | Edge Aucun support Non | Firefox Support complet 52 | Opera Support complet Oui | Firefox Android Support complet 52 |
conflictAction | Chrome Support complet Oui | Edge Aucun support Non | Firefox Support complet 47 | Opera Support complet Oui | Firefox Android Support complet 48 |
filename | Chrome Support complet Oui | Edge Aucun support Non | Firefox Support complet 47 | Opera Support complet Oui | Firefox Android Support complet 48 |
headers | Chrome Support complet Oui | Edge Aucun support Non | Firefox Support complet 47 | Opera Support complet Oui | Firefox Android Support complet 48 |
incognito | Chrome Aucun support Non | Edge Aucun support Non | Firefox Support complet 57 | Opera Aucun support Non | Firefox Android Support complet 57 |
method | Chrome Support complet Oui | Edge Aucun support Non | Firefox Support complet 47
| Opera Support complet Oui | Firefox Android Support complet 48
|
saveAs | Chrome Support complet Oui | Edge Aucun support Non | Firefox Support complet 52
| Opera Support complet Oui | Firefox Android Aucun support Non |
Légende
- Support complet
- Support complet
- Aucun support
- Aucun support
- Voir les notes d'implémentation.
- Voir les notes d'implémentation.
ExamplesSection
Le fragment suivant tente de télécharger un exemple de fichier, en spécifiant également un nom de fichier et un emplacement pour l'enregistrer, ainsi que l'option uniquify
conflictAction
.
function onStartedDownload(id) {
console.log(`Started downloading: ${id}`);
}
function onFailed(error) {
console.log(`Download failed: ${error}`);
}
var downloadUrl = "https://example.org/image.png";
var downloading = browser.downloads.download({
url : downloadUrl,
filename : 'my-image-again.png',
conflictAction : 'uniquify'
});
downloading.then(onStartedDownload, onFailed);
Cette API est basée sur l'API Chromium chrome.downloads
.
// Copyright 2015 Les auteurs de chrome. Tous les droits sont réservés.
//
// Redistribution et utilisation sous forme source et binaire, avec ou sans
// modification, sont autorisées à condition que les conditions suivantes soient
// rencontré:
//
// * Les redistributions de code source doivent conserver le copyright ci-dessus
// remarque, cette liste de conditions et la clause de non-responsabilité suivante.
// * Les redistributions sous forme binaire doivent reproduire ce qui précède
// avis de droit d'auteur, cette liste de conditions et la clause de non-responsabilité suivante // dans la documentation et / ou les autres éléments fournis avec le
// Distribution.
// * Ni le nom de Google Inc. ni les noms de ses
// les contributeurs peuvent être utilisés pour approuver ou promouvoir des produits dérivés de
// ce logiciel sans autorisation écrite préalable spécifique.
//
// CE LOGICIEL EST FOURNI PAR LES TITULAIRES DE COPYRIGHT ET LES CONTRIBUTEURS
// "EN L'ETAT" ET TOUTE GARANTIE EXPRESSE OU IMPLICITE, Y COMPRIS MAIS NON
// LIMITE AUX GARANTIES IMPLICITES DE QUALITÉ MARCHANDE ET D'ADÉQUATION À
// UN OBJECTIF PARTICULIER EST REFUSÉ. EN AUCUN CAS, LE COPYRIGHT
// LE PROPRIÉTAIRE OU LES CONTRIBUTEURS SONT RESPONSABLES DE TOUT ASSISTANCE DIRECTE, INDIRECTE, ACCESSOIRE,
// DOMMAGES PARTICULIERS, EXEMPLAIRES OU CONSÉCUTIFS (Y COMPRIS, MAIS NON
// LIMITÉE À L'ACQUISITION DE MARCHANDISES OU DE SERVICES DE SUBSTITUTION; PERTE D'USAGE,
// DATA, OR PROFITS; OU INTERRUPTION COMMERCIALE) TOUTEFOIS CAUSÉE ET SUR TOUTE
// THÉORIE DE LA RESPONSABILITÉ, QU'IL SOIT UN CONTRAT, UNE RESPONSABILITÉ STRICTE OU UN TORT
// (INCLUANT LA NÉGLIGENCE OU AUTREMENT) SURVENANT DE TOUTE MANIÈRE DE L'UTILISER
// DE CE LOGICIEL, MÊME SI AVISÉ DE LA POSSIBILITÉ D'UN TEL DOMMAGE.