diff --git a/packages/nodes-base/nodes/Matrix/GenericFunctions.ts b/packages/nodes-base/nodes/Matrix/GenericFunctions.ts index a01b846934e68..eebe1aebfe65e 100644 --- a/packages/nodes-base/nodes/Matrix/GenericFunctions.ts +++ b/packages/nodes-base/nodes/Matrix/GenericFunctions.ts @@ -189,6 +189,7 @@ export async function handleMatrixCall( const roomId = this.getNodeParameter('roomId', index) as string; const mediaType = this.getNodeParameter('mediaType', index) as string; const binaryPropertyName = this.getNodeParameter('binaryPropertyName', index); + const additionalFields = this.getNodeParameter('additionalFields', index); let body; const qs: IDataObject = {}; @@ -197,7 +198,12 @@ export async function handleMatrixCall( const { fileName, mimeType } = this.helpers.assertBinaryData(index, binaryPropertyName); body = await this.helpers.getBinaryDataBuffer(index, binaryPropertyName); - qs.filename = fileName; + if (additionalFields.fileName) { + qs.filename = additionalFields.fileName as string; + } else { + qs.filename = fileName; + } + headers['Content-Type'] = mimeType; headers.accept = 'application/json,text/*;q=0.99'; @@ -216,7 +222,7 @@ export async function handleMatrixCall( body = { msgtype: `m.${mediaType}`, - body: fileName, + body: qs.filename, url: uploadRequestResult.content_uri, }; const messageId = uuid(); diff --git a/packages/nodes-base/nodes/Matrix/MediaDescription.ts b/packages/nodes-base/nodes/Matrix/MediaDescription.ts index 22af3a068b974..38e78557a2b25 100644 --- a/packages/nodes-base/nodes/Matrix/MediaDescription.ts +++ b/packages/nodes-base/nodes/Matrix/MediaDescription.ts @@ -81,8 +81,30 @@ export const mediaFields: INodeProperties[] = [ description: 'Image media type', }, ], - description: 'Name of the uploaded file', + description: 'Type of file being uploaded', placeholder: 'mxc://matrix.org/uploaded-media-uri', required: true, }, + { + displayName: 'Additional Fields', + name: 'additionalFields', + type: 'collection', + placeholder: 'Add Field', + default: {}, + displayOptions: { + show: { + resource: ['media'], + operation: ['upload'], + }, + }, + options: [ + { + displayName: 'File Name', + name: 'fileName', + type: 'string', + default: '', + description: 'Name of the file being uploaded', + }, + ], + }, ];