Transferring file from user's device to Pixel-Streamed Unreal Applications
In this document we will explain how to enable users to upload files directly from their browser to an Unreal Engine application running on the Eagle 3D Streaming (E3DS) platform.
The E3DS platform automatically handles the file selection dialog and stores the uploaded file in your project’s directory.
Video Preview
https://youtu.be/vdMV73J0dgwDemo URL:
https://connector.eagle3dstreaming.com/v5/demo/FeaturesPluginDemo/featuresPluginDemo
In this demo, pressing the G key on your keyboard will open a window that allows you to upload your file.
You can initiate the file transfer using either of the following two methods:
Method 1. Using the E3DS Features Plugin (Recommended)
Prerequisite:
Before proceeding, ensure you have downloaded and installed the E3DS Features Plugin in your Unreal Engine project. For detailed instructions, refer to:
Download and Install the E3DS Features Plugin
Follow the steps below:
(i) Use the Blueprint function Transfer File from User Browser to Unreal, and specify the destination path (for example: ProjectDirectory/Saved/).
(ii) The plugin will automatically handle the upload process.

Figure 1. Using the E3DS Features Plugin
Method 2. Sending a Message Directly (Not Recommended)
If you’re not experienced with Blueprint development, do not use Method 2. Please use Method 1 instead — Method 2 is more error-prone and increases the chance of implementation mistakes.
(i) Use the Send Pixel Streaming Response node in Blueprints to send the following JSON object:
{"cmd": "sendLocalFileToUE4","pathToSaveFile": "%AnyPathInsideProjectDirectory%"}
(ii) Replace %AnyPathInsideProjectDirectory% with the relative path inside your project directory where you want to store the file.
Paths must be relative to the Project Directory (absolute paths like C:\ are not supported).

Figure 2. Sending a message directly
File Selection and Upload Process
Regardless of the method you choose, once the upload request is sent, the Eagle 3D Streaming platform will open a file selection dialog in the browser, allowing the user to choose the file to upload.

Figure 3. Uploading a file
Handling Upload Status and Notifications
When transferring files from the browser to a Pixel-Streamed Unreal Application, the Eagle 3D Streaming platform provides multiple callbacks to help you track the status of the file selection and upload process.
These events can be used to determine whether the user started uploading, completed uploading, or canceled the file selection.
Available Events
Event | Description |
|---|---|
| Triggered when the user selects a file in the browser’s file selection dialog. This indicates that the upload process has started. |
| Triggered when the file has been completely uploaded and processed on the browser side. |
| Sent from the application side when the uploaded file becomes available inside the Unreal project directory. This confirms a successful upload. |
| Triggered when the user opens the file selection window but does not select a file and closes the dialog instead. This allows you to handle user cancellation gracefully. |
Example Use Case
If your Unreal application checks for uploaded files using a timer, you can use these events to manage file state transitions more efficiently:
When
onUserSideFileSelectedis received → mark upload as in progress.When
onUserSideFileProcessingFinishedoronUploadedFileAvailableis received → mark upload as completed.When
onUserSideFileSelectionCanceledis received → mark upload as canceled, so the timer does not keep waiting.
Verifying the Upload
To confirm the file upload has completed, use the File Exists node.
This node takes a full file path and returns whether the file exists.
For example, if you expect
test.jpgto be located inProjectDirectory/Saved/test.jpg, you can check for its presence and print"Yes"or"No"accordingly.

Figure 4. Verifying whether the file upload is completed
Example Behavior:
Initially,
"No"is printed because the file does not exist.As soon as the upload is complete, the output changes to
"Yes".

Figure 5. Verify whether the File Upload is Completed or Not
Troubleshooting
File selection dialog does not appear
Ensure the in-game event or function that triggers the upload is actually called.
Double-check the JSON message format (if using the manual method).
If unsure, try using the E3DS Features Plugin method.
File is uploaded but Unreal cannot find it
Ensure the file is saved inside your Project Directory only.
Saving files outside the project directory (e.g.,
C:\root or custom folders outside the project) is not supported.All uploaded files are virus scanned — any potentially harmful files will be rejected.
Need help?
🛠️ Contact our Support Team
💬 Join the Community on Discord
Follow us on:
Facebook | GitHub | LinkedIn | YouTube