# Ignition Module File Upload

**URL:** <https://forum.inductiveautomation.com/t/ignition-module-file-upload/104969>\
**Category:** Module Development\
**Tags:** ignition81\
**Created:** [April 10, 2025, 6:50pm UTC](https://forum.inductiveautomation.com/t/ignition-module-file-upload/104969 "2025-04-10T18:50:15Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Manuel\_Rodriguez](https://avatars.discourse-cdn.com/v4/letter/m/94ad74/32.png) [@Manuel\_Rodriguez](https://forum.inductiveautomation.com/u/Manuel_Rodriguez)\
**Post date:** [April 10, 2025, 6:50pm UTC](https://forum.inductiveautomation.com/t/ignition-module-file-upload/104969/1 "2025-04-10T18:50:15Z")

</div>

Hi everyone,

I’m having trouble integrating a file upload for MQTT certificates in my custom module. I need to upload a certificate using a file upload editor, but unfortunately, the certificate information (neither its file path nor its content) is being saved to the PersistentRecord.

Here’s what I have so far:

public static final StringField CCACertificate = new StringField(META,"CCACertificate").setDefault("");

CCACertificate.getFormMeta().setEditorSource(FileUploadEditorSource.getSharedInstance());

I expected that when a user uploads a certificate file, this configuration would handle saving the file’s content or path into the CCACertificate field of the PersistentRecord. However, it appears that the record is not storing any data from the file upload.

I’m looking for guidance on the following:

- **Proper configuration:** How should the file upload editor be configured to ensure that the uploaded file’s information is correctly captured in the record?
- **Saving the file content/path:** What additional steps or code are necessary to actually persist the certificate’s file path or its content in the record?
- **Examples:** Are there any similar implementations or examples from which I could draw insights?

Any help or suggestions from anyone who has worked with FileUploadEditorSource in a PersistentRecord or a similar setup would be greatly appreciated.

---

<div class="post-metadata">

**Author:** ![paul-griffith](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/paul-griffith/32/37249_2.png) [@paul-griffith](https://forum.inductiveautomation.com/u/paul-griffith)\
**Post date:** [April 10, 2025, 8:00pm UTC](https://forum.inductiveautomation.com/t/ignition-module-file-upload/104969/2 "2025-04-10T20:00:03Z")

</div>

Take a look at this post:

> [@Upload file with RecordEditForm](https://forum.inductiveautomation.com/t/upload-file-with-recordeditform/99298/8):
>
> The SECS/GEM module does this with the following: 0. The stuff you're already doing in the form meta. Subclassing RecordEditForm Setting up a private final field to hold the FileUploadField: private FileUploadField uploadField; Overriding newEditorComponent to capture the value in the field: @Override protected Component newEditorComponent(String id, FormMeta formMeta, RecordEditMode mode, SRecordInstance record) { Component comp = super.newEditorComponent(id, formMeta, mode…
