downloads.DownloadItem
======================

`downloads` API 的 `DownloadItem` 类代表了一个被下载的文件。

Type
----

这个类型的值是对象，包含了以下属性：

`byExtensionId`可选

一个代表了触发此下载的扩展的 ID 的 `string` （如果是被扩展触发的话）。一旦设置，不会改变。如果下载不是由扩展触发的，则为 undefined。

`byExtensionName`可选

一个代表了触发此下载的扩展的名字的 `string` （如果是被扩展触发的话）。如果用户改变了扩展的语言环境，则这个属性的值也可能变化。如果下载不是由扩展触发的，则为 undefined。

`bytesReceived`

一个代表了在下载过程中从主机接收到的字节数的 `number` ；不考虑文件压缩。

`canResume`

一个标识当前中断（例如暂停）的下载是否可以从当前位置恢复的 `boolean`。

`danger`

一个标识这个下载是否通过一个不安全的或已知的可疑的站点。可能被设置为 `downloads.DangerType` (en-US) 类型。

`endTime`可选

A `string` (in ISO 8601 format) representing the number of milliseconds between the UNIX epoch and when this download ended. This is undefined if the download has not yet finished.

`error`可选

A string indicating why a download was interrupted. Possible values are defined in the `downloads.InterruptReason` (en-US) type. This is undefined if an error has not occurred.

`estimatedEndTime`可选

A `string` (in ISO 8601 format) representing the estimated number of milliseconds between the UNIX epoch and when this download is estimated to be completed. This is undefined if it is not known (in particular, it is undefined in the `DownloadItem` that's passed into `downloads.onCreated` (en-US)).

`exists`

A `boolean` indicating whether a downloaded file still exists (`true`) or not (`false`). This information might be out-of-date, as browsers do not automatically watch for file removal — to check whether a file exists, call the `downloads.search()` (en-US) method, filtering for the file in question.

`filename`

A `string` representing the file's absolute local path.

`fileSize`

A `number` indicating the total number of bytes in the whole file, after decompression. A value of -1 here means that the total file size is unknown.

`id`

An `integer` representing a unique identifier for the downloaded file that is persistent across browser sessions.

`incognito`

A `boolean` that indicates whether the download is recorded in the browser's history (`false`), or not (`true`).

`mime`

A `string` representing the downloaded file's MIME type.

`paused`

A `boolean` indicating whether the download is paused, i.e. if the download has stopped reading data from the host but has kept the connection open. If so, the value is `true`, `false` if not.

`referrer`

A `string` representing the downloaded file's referrer.

`startTime`

A `string` (in ISO 8601 format) representing the number of milliseconds between the UNIX epoch and when this download began.

`state`

A `string` Indicating whether the download is progressing, interrupted, or complete. Possible values are defined in the `downloads.State` (en-US) type.

`totalBytes`

A `number` indicating the total number of bytes in the file being downloaded. This does not take file compression into consideration. A value of -1 here means that the total number of bytes is unknown.

`url`

A `string` representing the absolute URL from which the file was downloaded.

Browser compatibility
---------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

**备注：** This API is based on Chromium's `chrome.downloads` API.

Microsoft Edge compatibility data is supplied by Microsoft Corporation and is included here under the Creative Commons Attribution 3.0 United States License.