--- title: "system.perspective.download" description: "Downloads data from the Gateway to a device running a Session." --- # system.perspective.download > Downloads data from the Gateway to a device running a Session. This function is used in **Python Scripting**. ## Description When calling from the Gateway scope, the call must include a sessionId. This function interacts with mobile apps directly to ensure that download requests can be saved to the local device. Requires version 1.0.2 of the [Ignition Perspective App](ignition-modules\perspective\perspective-sessions\ignition-perspective-app.md). ## Syntax - Gateway Scope :::tip This function accepts [keyword arguments](platform\scripting\python-scripting\user-defined-functions.md#keyword-arguments). ::: `system.perspective.download(filename, data, [contentType], sessionId, [pageId])` ### Parameters Type | Parameter | Description ------- | ------- | ------ String | `filename` | Suggested name for the downloaded file. String | `data` | The data to be downloaded. May be a string, a byte[], or an InputStream. Strings will be written in UTF-8 encoding. String | `contentType` | Value for the "Content-Type" header, for example: "text/plain; charset=utf-8". [optional] String | `sessionId` | Identifier of the Session to target. If omitted, the current Session will be used automatically. When targeting a different session, then the pageId parameter must be included in the call. String | `pageId` | Identifier of the page to target. If omitted, the current page will be used automatically. [optional] ### Returns Nothing ### Scope Gateway, Perspective Session :::note This function will only work in the Gateway scope if both `sessionId` and `pageId` are supplied to the call. ::: ## Syntax - Session Scope :::tip This function accepts [keyword arguments](platform\scripting\python-scripting\user-defined-functions.md#keyword-arguments). ::: `system.perspective.download(filename, data, [contentType], [sessionId], [pageId])` ### Parameters Type | Parameter | Description ------- | ------- | ------ String | `filename` | Suggested name for the downloaded file. String | `data` | The data to be downloaded. May be a string, a byte[], or an InputStream. Strings will be written in UTF-8 encoding. String | `contentType` | Value for the "Content-Type" header, for example: "text/plain; charset=utf-8". [optional] String | `sessionId` | Identifier of the Session to target. If omitted, the current Session will be used automatically. When targeting a different session, then the pageId parameter must be included in the call. [optional] String | `pageId` | Identifier of the page to target. If omitted, the current page will be used automatically. [optional] ### Returns Nothing ### Scope Perspective Session ## Code Examples ```python title="Code Snippet" # Downloads the file "myFile.pdf" (located on the Gateway) to the user running the current Session. filename = 'myFile.pdf' data = system.file.readFileAsBytes('C:\\'+filename) system.perspective.download(filename, data) ```