Base64 image upload adapter
The Base64 image upload adapter converts inserted images into Base64-encoded strings in the editor output. The images are stored with other content in the database without any server-side processing.
Remember that while Base64
upload is an easy solution, it is also highly inefficient. The image file is kept as data in the database, generating a much heavier data load and higher transfer. Base64
images are never cached by the browser so loading and saving such data will always be slower.
This can be troublesome for some features: revision history may hence take longer to load revisions. The same applies to comments. Content with Base64
images may also exceed the allowed file size when your document is exported to PDF or to Word.
Therefore using the Base64
feature is a less efficient option to use than some other available ones. Check out the comprehensive image upload overview guide to learn about other ways to upload images into CKEditor 5.
# Demo
Use the editor below to see the adapter in action. Open the web browser console and click the button below the editor to see the base64–encoded image in the editor output data.
CKEditor 5 offers multiple ways to include images in your rich content. You can choose whichever best suits your needs. Use the classic interface or boost your productivity with advanced image handling.
Paste or drag and drop an image directly into the editor. You can also use the insert image button in the toolbar.
This demo presents a limited set of features. Visit the feature-rich editor example to see more in action.
# Installation
⚠️ New import paths
Starting with version 42.0.0, we changed the format of import paths. This guide uses the new, shorter format. Refer to the Packages in the legacy setup guide if you use an older version of CKEditor 5.
After installing the editor, add the feature to your plugin list and toolbar configuration:
import { ClassicEditor, Base64UploadAdapter } from 'ckeditor5';
ClassicEditor
.create( document.querySelector( '#editor' ), {
licenseKey: '<YOUR_LICENSE_KEY>', // Or 'GPL'.
plugins: [ Base64UploadAdapter, /* ... */ ],
toolbar: [ /* ... */ ]
} )
.then( /* ... */ )
.catch( /* ... */ );
Once enabled in the plugin list, the Base64 image upload adapter works out–of–the–box without any additional configuration.
# Configuration
# Configuring allowed file types
The allowed file types that can be uploaded should actually be configured in two places:
- On the client side, in CKEditor 5, restricting image upload through the CKEditor 5 UI and commands.
- On the server side, in your server configuration.
# Client-side configuration
Use the image.upload.types
configuration option to define the allowed image MIME types that can be uploaded to CKEditor 5.
By default, users can upload jpeg
, png
, gif
, bmp
, webp
, and tiff
files. You can customize this behavior to accept, for example, SVG files (in this case use the svg+xml
type).
# Server-side configuration
It is up to you to implement any filtering mechanisms on your server to restrict the types of images allowed to be uploaded.
# What’s next
Check out the comprehensive Image upload overview to learn more about different ways of uploading images in CKEditor 5.
See the Image feature guide to find out more about handling images in CKEditor 5 WYSIWYG editor.
# Contribute
The source code of the feature is available on GitHub at https://github.com/ckeditor/ckeditor5/tree/master/packages/ckeditor5-upload.
Every day, we work hard to keep our documentation complete. Have you spotted outdated information? Is something missing? Please report it via our issue tracker.
With the release of version 42.0.0, we have rewritten much of our documentation to reflect the new import paths and features. We appreciate your feedback to help us ensure its accuracy and completeness.