YouTube Icon

Code Playground.

How to Upload Image in TinyMCE Editor using PHP


How to Upload Image in TinyMCE Editor using PHP

An HTML editor is a software for enhancing HTML, the markup of an internet web page. It stands for Tiny Moxiecode Content Editor. TinyMCE is a effective and flexible rich text HTML editor. In this tutorial, you will discover ways to Upload Image in TinyMCE HTML Editor the usage of PHP. This is a very easy instance, you may simply replica paste and trade in line with your requirement.

Before started out to implement the Upload Image in TinyMCE Editor the use of PHP, look files structure:

  •  upload-image-in-tinymce-editor-using-php
    •  plugins
    •  skins
    •  themes
    •  upload
    •  jquery.tinymce.min.js
    •  custom.tinymce.js
    •  index.php
    •  upload.php


  • Easy integration with your projects
  • Seamless markup integration
  • Predictable enhancing revel in

Step 1: Include the TinyMCE script(plugin)

Include the subsequent line of code in the of a HTML page.

Step 2: TinyMCE editor can be delivered to a textarea detail with the identification rich-editor the use of:.

Java Script Code

images_upload_url : Specify a URL for the server-side upload handler.

Images_upload_handler : This config overrides default upload handler to simulate a success add.

    selector: '#rich-editor',
    height: 300,
    plugins: 'image code',
    browser_spellcheck : true,
    menu: {
        file: { 
            title: 'File', 
            items: 'newdocument restoredraft | preview | print' 
        edit: { 
            title: 'Edit', 
            items: 'undo redo | cut copy paste | selectall | searchreplace' 
        view: { 
            title: 'View', 
            items: 'code | visualaid visualchars visualblocks | preview fullscreen' 
        insert: { 
            title: 'Insert', 
            items: 'image link media template codesample inserttable | charmap emoticons hr | pagebreak nonbreaking anchor toc | insertdatetime' 
        format: { 
            title: 'Format', 
            items: 'bold italic underline strikethrough superscript subscript codeformat | formats blockformats fontformats fontsizes align | forecolor backcolor | removeformat' 
        tools: { 
            title: 'Tools', 
            items: 'code wordcount' 
        table: { 
            title: 'Table', 
            items: 'inserttable | cell row column | tableprops deletetable' 
        help: { 
            title: 'Help', items: 'help' 
    branding: false,
    mobile: {
        menubar: true
    // upload image functionality
    images_upload_url: 'upload.php',
    images_upload_handler: function (blobInfo, success, failure) {
        var xhr, formData;
        xhr = new XMLHttpRequest();
        xhr.withCredentials = false;'POST', 'upload.php');
        xhr.onload = function() {
            var json;
            if (xhr.status != 200) {
                failure('HTTP Error: ' + xhr.status);
            json = JSON.parse(xhr.responseText);
            if (!json || typeof json.location != 'string') {
                failure('Invalid JSON: ' + xhr.responseText);
        formData = new FormData();
        formData.append('file', blobInfo.blob(), blobInfo.filename());


	<textarea id="rich-editor" name="description">Text...</textarea>

Step 2: PHP Upload Image Handler (add.Php)

	// Allowed the origins to upload 
	$accepted_origins = array("http://localhost", "");
	// Images upload dir path
	$imgFolder = "upload/";
	$tmp = current($_FILES);
	        if(in_array($_SERVER['HTTP_ORIGIN'], $accepted_origins)){
	            header('Access-Control-Allow-Origin: ' . $_SERVER['HTTP_ORIGIN']);
	            header("HTTP/1.1 403 Origin Denied");
	    // check valid file name
	    if(preg_match("/([^\w\s\d\-_~,;:\[\]\(\).])|([\.]{2,})/", $tmp['name'])){
	        header("HTTP/1.1 400 Invalid file name.");
	    // check and Verify extension
	    if(!in_array(strtolower(pathinfo($tmp['name'], PATHINFO_EXTENSION)), array("gif", "jpg", "png"))){
	        header("HTTP/1.1 400 Invalid extension.");
	    // Accept upload if there was no origin, or if it is an accepted origin
	    $filePath = $imgFolder . $tmp['name'];
	    move_uploaded_file($tmp['tmp_name'], $filePath);
	    // return successful JSON.
	    echo json_encode(array('location' => $filePath));
	} else {
	    header("HTTP/1.1 500 Server Error");

PHP Image Upload using TinyMCE Editor – Output