How to Upload Media to WordPress from Flutter

How to Upload Media to WordPress from Flutter

June 20, 2025
Flutter media upload

Uploading images or files to WordPress directly from a Flutter app unlocks powerful use cases — like photo-sharing, user-generated content, mobile blogging, or product uploads.

Fortunately, WordPress’s REST API supports media uploads, and Flutter gives you full control over the file selection and submission process.

Let’s explore how this integration works conceptually — without diving into code.

Why Upload Media to WordPress from a Mobile App?

  • Let users upload photos to posts or galleries

  • Submit creative content like drawings, designs, or audio

  • Add product images in WooCommerce apps

  • Allow admins to post media on the go

  • Enable field agents or staff to report with images or files

How WordPress Handles Media Uploads

WordPress provides a REST endpoint to handle media files:

POST /wp-json/wp/v2/media

This endpoint accepts:

  • File data (image, PDF, video, etc.)

  • Metadata (title, description, alt text)

  • Optional associations (e.g., attach to a post)

But to use it securely, your Flutter app needs to be authenticated.

High-Level Workflow: Uploading Media from Flutter to WordPress

Here’s how the full upload flow works:

1. Authenticate the User

Before uploading, ensure the user is authenticated using:

  • JWT token authentication

  • Or application passwords (for secure admin logins)

The token is included in every media upload request:

Authorization: Bearer <your-token>

2. Pick a File in Flutter

Let the user select a photo or file using a file picker or image picker.

3. Send File to WordPress

The selected file is sent via POST to the /media endpoint. The request should:

  • Use multipart/form-data as content type

  • Include the file data

  • Include metadata like title or alt text (optional)

  • Set correct headers (Content-Disposition, Content-Type, etc.)

4. WordPress Stores the File

On success, WordPress:

  • Stores the file in the Media Library

  • Returns a JSON response with media info:

    • Media ID

    • URL of the uploaded file

    • Metadata and sizes

5. Use the Media in Posts or Pages

Once uploaded, the media ID or URL can be:

  • Embedded in a new blog post or page

  • Assigned as a featured image

  • Sent as part of a product listing or user submission

Supported File Types

By default, WordPress supports:

  • Images: JPG, PNG, GIF, WebP

  • Documents: PDF, DOCX

  • Videos: MP4

  • Archives: ZIP, etc.

(Allowed types depend on your WordPress settings and roles.)