2.9 KiB
DownloadItem
Control file downloads from remote sources.
DownloadItem
is an EventEmitter that represents a download item in Electron.
It is used in will-download
event of Session
module, and allows users to
control the download item.
// In the main process.
win.webContents.session.on('will-download', (event, item, webContents) => {
// Set the save path, making Electron not to prompt a save dialog.
item.setSavePath('/tmp/save.pdf');
console.log(item.getMimeType());
console.log(item.getFilename());
console.log(item.getTotalBytes());
item.on('updated', () => {
console.log('Received bytes: ' + item.getReceivedBytes());
});
item.on('done', (e, state) => {
if (state === "completed") {
console.log("Download successfully");
} else {
console.log("Download is cancelled or interrupted that can't be resumed");
}
});
});
Events
Event: 'updated'
Emits when the downloadItem
gets updated.
Event: 'done'
event
Eventstate
Stringcompleted
- The download completed successfully.cancelled
- The download has been cancelled.interrupted
- An error broke the connection with the file server.
Emits when the download is in a terminal state. This includes a completed
download, a cancelled download(via downloadItem.cancel()
), and interrupted
download that can't be resumed.
Methods
The downloadItem
object has the following methods:
downloadItem.setSavePath(path)
path
String - Set the save file path of the download item.
The API is only available in session's will-download
callback function.
If user doesn't set the save path via the API, Electron will use the original
routine to determine the save path(Usually prompts a save dialog).
downloadItem.pause()
Pauses the download.
downloadItem.resume()
Resumes the download that has been paused.
downloadItem.cancel()
Cancels the download operation.
downloadItem.getURL()
Returns a String
represents the origin url where the item is downloaded from.
downloadItem.getMimeType()
Returns a String
represents the mime type.
downloadItem.hasUserGesture()
Returns a Boolean
indicates whether the download has user gesture.
downloadItem.getFilename()
Returns a String
represents the file name of the download item.
Note: The file name is not always the same as the actual one saved in local disk. If user changes the file name in a prompted download saving dialog, the actual name of saved file will be different.
downloadItem.getTotalBytes()
Returns a Integer
represents the total size in bytes of the download item.
If the size is unknown, it returns 0.
downloadItem.getReceivedBytes()
Returns a Integer
represents the received bytes of the download item.
downloadItem.getContentDisposition()
Returns a String
represents the Content-Disposition field from the response
header.