How to Upload an Image Using the TinyMCE editor?

TinyMCE is a platform-independent web-based JavaScript HTML WYSIWYG editor control released as open-source software under LGPL by Ephox Corporation. It allows users to format text, add images, tables, and much more with ease, offering a familiar word processor-like interface. One of its key functionalities is the ability to upload and embed images directly into the content being edited.

Why Upload Images with TinyMCE?

Integrating image uploading capabilities into TinyMCE enhances user experience by enabling content creators to seamlessly add visual elements to their text without the need to switch between applications or platforms. This convenience streamlines the content creation process and encourages richer, more engaging content.

Understanding the Image Upload Process:

When uploading images using TinyMCE, the process typically involves the following steps:

  1. User Interaction: The user interacts with the TinyMCE editor interface to add or insert an image into the content.
  2. Image Selection: The user selects an image file from their local device.
  3. Image Upload: The selected image file is uploaded to the server.
  4. Server-Side Processing: The server receives the uploaded image file, processes it (e.g., resizing, renaming), and stores it in a designated directory.
  5. Image Embedding: The server returns the URL or path of the uploaded image to TinyMCE, which then embeds the image into the content being edited.

Setting Up TinyMCE for Image Upload:

Before diving into the code, ensure you have the following prerequisites:

1. A web server with PHP support.
2. TinyMCE editor integrated into your web application.

Step-by-Step Guide:

1. Integration of TinyMCE Editor:

If you haven't already integrated TinyMCE into your project, follow these steps:

  • Download TinyMCE from the official website or include it via a CDN.
  • Include the TinyMCE script in your HTML file.
  • Initialize the TinyMCE editor on the desired textarea or div element.

2. Configuring TinyMCE for Image Upload:

To enable image uploading in TinyMCE, you need to configure the editor to specify the endpoint where image files will be uploaded. This is typically done using the `images_upload_url` option.

  selector: 'textarea',
  plugins: 'image',
  toolbar: 'image',
  images_upload_url: 'upload.php', // Endpoint for image upload
  // Additional configuration options...

3. Server-Side Implementation:

Now, let's create the `upload.php` file to handle the image upload process.

// Check if file was uploaded without errors
if ($_FILES['file']['error'] === UPLOAD_ERR_OK) {
    $tempFile = $_FILES['file']['tmp_name'];
    $targetPath = 'uploads/'; // Specify the directory where images will be stored
    $targetFile = $targetPath . $_FILES['file']['name'];

    // Move the uploaded file to the specified directory
    if (move_uploaded_file($tempFile, $targetFile)) {
        // Return the URL of the uploaded image
        echo json_encode(['location' => $targetFile]);
    } else {
        echo json_encode(['error' => 'Error uploading file']);
} else {
    echo json_encode(['error' => 'File upload error']);

4. Handling Image Embedding:

Once the image is successfully uploaded, TinyMCE expects the server to return the URL or path of the uploaded image. This URL is then used to embed the image into the content.


In this comprehensive guide, we've covered the process of uploading images using TinyMCE editor in PHP. By following the outlined steps and incorporating the provided code snippets into your web application, you can seamlessly integrate image uploading functionality into your content creation workflow, enhancing user experience and fostering richer, more visually appealing content. Happy coding!