Skip to content
Back

What's the correct way to send a file to a function?

  • 0
  • Functions
memoonlite
9 Sep, 2025, 12:11

Hello everyone! 😊

I have a hard time figuring out the right way to send a file to an Appwrite function.

Lets say I have an image that I'd like to pass to a function, alongside a description of the file. Should I just pass it like this?

Dart: ``Uint8List pngBytes = await fetchPngBytes('');

final execution = await appWriteClientController.function.createExecution( functionId: 'upload-file, body: jsonEncode({ 'description': 'A test file', 'file': pngBytes, }));``

I also notice people encode the file to base64 first and pass that to the function. Is that a better way to pass the file?

Another thing I read is that 'Accept: multipart/form-data' should be passed to createExecution when a file is passed to a function. Is this correct?

The function side is also a bit unclear to me:

node.js: const file = req.bodyBinary; if (!file) { return res.json({ success: false, message: 'No file received' }); } else { return res.json({ success: true, }); }

Is this the right way to retrieve the file in my function? 🤔

TL;DR
Developers are discussing the correct way to send a file to an Appwrite function. There is new binary file support in Appwrite V1.6. The recommended method is to encode the file to base64 before passing it. You should use 'Accept: multipart/form-data' and decode the file on the function's side to successfully receive it. The provided code snippets should work fine for sending and receiving files.
Guille
9 Sep, 2025, 12:46

Hey, check this post with the same question: https://discord.com/channels/564160730845151244/1157683118782816328

memoonlite
9 Sep, 2025, 14:37

Thanks. That question was asked a long time before binary support was added to functions in Appwrite V1.6. Is the code shown there still a best practice, or is there a better way to do it now?

memoonlite
9 Sep, 2025, 14:39

I mean, it's now possible to pass a file through createExecution, right?

Guille
9 Sep, 2025, 14:39

I'm sorry you're right, there is a better documentation with a binary file feature: https://appwrite.io/blog/post/introducing-functions-ecosystem#binary-executions

memoonlite
9 Sep, 2025, 20:18

Thanks. 👍🏻👍🏻

memoonlite
9 Sep, 2025, 20:19

I investigated further and I think it's not possible to upload a file through createExecution as binary, because it only takes a string as body parameter? 🤔

Reply

Reply to this thread by joining our Discord

Reply on Discord

Need support?

Join our Discord

Get community support by joining our Discord server.

Join Discord

Get premium support

Join Appwrite Pro and get email support from our team.

Learn more