--- hide_title: true hide_table_of_contents: true title: Upload File node --- {/*##head##*/} # Upload File This node uploads a file to the Noodl Cloud Services. Can be used in combination with a **Record** to link the file to a property. When retrieving the file reference you can get the **URL** to the file and **Name** of file using a [Cloud File](/nodes/data/cloud-data/cloud-file) node.
![](/nodes/data/cloud-data/upload-file/upload-file.png)
{/*##head##*/} ## Inputs | Data | Description | | -------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | File | {/*##input:file##*/}An HTML5 [File](https://developer.mozilla.org/en-US/docs/Web/API/File). The [File Picker](/nodes/utilities/open-file-picker) can be used to open a file dialog picker and generate the **File** from a local file. It's also possible to retrieve the File from external sources, or generate it by code. {/*##input##*/} | | Signal | Description | | ------------------------------------------ | ---------------------------------------------------------- | | Upload | {/*##input:upload##*/}Triggers the upload to start.{/*##input##*/} | ## Outputs | Data | Description | | --------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Cloud File | {/*##output:cloudFile##*/}A [Cloud File](/nodes/data/cloud-data/cloud-file), which consists of an URL and a file name. Can be connected to a property of a [Record](/nodes/data/cloud-data/record) if the property type is specified as 'File'.{/*##output##*/} | | Total Bytes | {/*##output:progressTotalBytes##*/}The total size of the file in bytes that is being uploaded.{/*##output##*/} | | Uploaded Bytes | {/*##output:progressLoadedBytes##*/}Contains the number of bytes have been uploaded so far. Starts at 0, and moves towards **Total Bytes** after the **Upload** input signal has been triggered. The value is updated each time the **Progress Changed** event is sent.{/*##output##*/} | | Uploaded Percent | {/*##output:progressLoadedPercent##*/}The current percentage of the file that have been uploaded. Starts at 0, and moves towards 100 after the **Upload** input signal has been triggered. The value is updated each time the **Progress Changed** event is sent.{/*##output##*/} | | Error | {/*##output:error##*/}The error message as a string, if the upload fails.{/*##output##*/} | | Error Status Code | {/*##output:errorStatus##*/}An [HTTP error code](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status). For example, `413` if the file is too large.{/*##output##*/} | | Signal | Description | | ---------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | Progress Changed | {/*##output:progressChanged##*/}This event is used to track the upload progress. It is triggered multiple times during an upload when **Uploaded Bytes** and **Uploaded Percent** are updated.{/*##output##*/} | | Success | {/*##output:success##*/}This event triggers when the file was uploaded successfully.{/*##output##*/} | | Failure | {/*##output:failure##*/}This event triggers if there was en error uploading the file.{/*##output##*/} |