Classe : DownloadItem
Classe : DownloadItem
Gère les téléchargements de fichiers depuis des sources distantes.
Processus : Principal
Cette classe n'est pas exportée depuis le module 'electron'
. Elle n'est disponible qu'en tant que valeur de retour des autres méthodes dans l'API Electron.
DownloadItem
est un EventEmitter qui représente un élément de téléchargement dans Electron. Il est utilisé dans l'événement will-download
de la classe Session
, et permet aux utilisateurs de gérer les fichiers en cours de téléchargement.
// Dans le processus main.
const { BrowserWindow } = require('electron')
let win = new BrowserWindow()
win.webContents.session.on('will-download', (event, item, webContents) => {
// Définit le chemin d'enregistrement faisant qu'Electron n'affichera pas de boite de dialogue.
item.setSavePath('/tmp/save.pdf')
item.on('updated', (event, state) => {
if (state === 'interrupted') {
console.log('Le téléchargement est interrompu mais peut être redémarrer')
} else if (state === 'progressing') {
if (item.isPaused()) {
console.log('Le téléchargement est en pause')
} else {
console.log(`Received bytes: ${item.getReceivedBytes()}`)
}
}
})
item.once('done', (event, state) => {
if (state === 'completed') {
console.log('Téléchargement réussi')
} else {
console.log(`Téléchargement échoué : ${state}`)
}
})
})
Événements d’instance
Événement 'updated'
Retourne :
event
Eventstate
string - Peut êtreprogressing
ouinterrupted
.
Émis lorsque le téléchargement a été mis à jour et n'est pas fini.
Le state
peut être un de ces cas :
progressing
- Le téléchargement est en cours.interrupted
- Le téléchargement a été interrompu et peut être repris.
Événement 'done'
Retourne :
event
Eventstate
string - Peut prendre les valeurscompleted
,cancelled
ouinterrupted
.
Émis lorsque le téléchargement est dans un état de finalisation. Cela inclut téléchargement terminé, téléchargement annulé (via downloadItem.cancel()
), et téléchargement interrompu ne pouvant être repris.
Le state
peut être un de ces cas :
completed
- Le téléchargement s'est terminé avec succès.cancelled
- Le téléchargement a été annulé.interrupted
- Le téléchargement a été interrompu et ne peux pas être repris.
Méthodes d’instance
L'objet downloadItem
dispose des méthodes suivantes :
downloadItem.setSavePath(path)
path
string - Définit le chemin pour l'enregistrement de l'élément téléchargé.
Cette API est seulement disponible dans la fonction de callback de will-download
de la session. Si path
n'existe pas, Electron essaiera de reproduire le répertoire récursivement. Si l'utilisateur ne définit pas le chemin de sauvegarde via l'API, Electron utilisera la routine d'origine pour déterminer le chemin de sauvegarde ; cela produit généralement une boîte de dialogue d'enregistrement.
downloadItem.getSavePath()
Retourne string
- Chemin d'enregistrement de l'élément téléchargé. Ce sera soit le chemin défini via downloadItem.setSavePath(path)
ou le chemin sélectionné dans la boîte de dialogue d'enregistrement affichée.
downloadItem.setSaveDialogOptions(options)
Cette API permet à l'utilisateur de définir des options personnalisées pour la boîte de dialogue d'enregistrement s'ouvrant par défaut pour l'élément de téléchargement. Cette API est seulement disponible dans la fonction de callback de will-download
de la session.
downloadItem.getSaveDialogOptions()
Retourne SaveDialogOptions
- Retourne l'objet précédemment défini par downloadItem.setSaveDialogOptions(options)
.
downloadItem.pause()
Met en pause le téléchargement.
downloadItem.isPaused()
Retourne boolean
- Indique si le téléchargement est en pause.
downloadItem.resume()
Reprend le téléchargement qui a été mis en pause.
Remarque : Pour permettre la reprise des téléchargements, le serveur à partir duquel vous téléchargez doit supporter les requêtes partielles (range requests) et doit fournir les en-têtes Last-Modified
et ETag
. Sinon resume()
rejettera les octets reçus précédemment et redémarrera le téléchargement à partir du début.
downloadItem.canResume()
Retourne boolean
- Indique si le téléchargement peut être repris.
downloadItem.cancel()
Annule le téléchargement.
downloadItem.getURL()
Retourne string
- URL d'origine d'où l'élément est téléchargé.
downloadItem.getMimeType()
Retourne string
- Type mime des fichiers.
downloadItem.hasUserGesture()
Retourne boolean
- Si le téléchargement à des gestures.
downloadItem.getFilename()
Retourne string
- Nom du fichier du téléchargement.
Remarque : Le nom du fichier n'est pas toujours le même que celui actuellement enregistré sur le disque local. Si l'utilisateur modifie le nom du fichier dans la boîte de dialogue d'enregistrement, alors le nom actuel et le nom du fichier enregistré seront différent.
downloadItem.getCurrentBytesPerSecond()
Returns Integer
- The current download speed in bytes per second.
downloadItem.getTotalBytes()
Retourne Integer
- La taille totale en octets du téléchargement.
Retourne 0 si la taille est inconnue.
downloadItem.getReceivedBytes()
Retourne Integer
- Le nombre d'octets reçu du téléchargement.
downloadItem.getPercentComplete()
Returns Integer
- The download completion in percent.
downloadItem.getContentDisposition()
Retourne string
- Champ Content-Disposition venant de l'en-tête de la réponse.
downloadItem.getState()
Retourne string
- Etat actuel. Peut être progressing
, completed
, cancelled
ou interrupted
.
Remarque : Les méthodes suivantes sont particulièrement utiles pour relancer un téléchargement cancelled
au redémarrage de la session.
downloadItem.getURLChain()
Retourne string[]
- Chaîne complète d'URL de l'élément incluant toutes les redirections.
downloadItem.getLastModifiedTime()
Retourne string
- Dernière valeur d'en-tête modifiée.
downloadItem.getETag()
Retourne string
- valeur de l'en-tête ETag.
downloadItem.getStartTime()
Retourne Double
- Le nombre de secondes depuis l'époch UNIX du démarrage du téléchargement.