diff --git a/src/payload/client.ts b/src/payload/client.ts index 0f6dce9..2d2e821 100644 --- a/src/payload/client.ts +++ b/src/payload/client.ts @@ -100,9 +100,14 @@ class PayloadClient { async uploadMedia(file: Buffer, filename: string, mimeType: string, options: MediaUploadOptions): Promise { const formData = new FormData(); - formData.append('alt', options.alt); - if (options.caption) formData.append('caption', options.caption); - formData.append('tenant', String(options.tenantId)); + + // Payload CMS requires document data as JSON in the _payload field + const payloadData: Record = { + alt: options.alt, + tenant: options.tenantId, + }; + if (options.caption) payloadData.caption = options.caption; + formData.append('_payload', JSON.stringify(payloadData)); const arrayBuffer = new ArrayBuffer(file.byteLength); new Uint8Array(arrayBuffer).set(file);