---
category: framework-deep-dive
menu-title: Custom upload adapter
classes: custom-adapter
---
# Custom image upload adapter
In this guide you will learn the basic concepts of the file upload architecture in CKEditor 5 WYSIWYG editor which will help you implement your own custom upload adapter.
While this guide is mainly focused on the image upload (the most common kind of upload), keep in mind that the presented concepts and the API allow developing all sorts of file upload adapters for different file types like PDFs, movies, etc.
| Term | Description |
|---|---|
| Upload adapter |
A piece of code (a class) that handles the image upload from the moment it is requested by the user (e.g. when the file is dropped into the content) to the moment the server returns a response to the requested upload. A bridge between the feature and the server. Upload adapters are used by other plugins like {@link module:image/imageupload~ImageUpload image upload} to connect to the server and fetch the response. For every user action (e.g. when a file is dropped into the content), a new upload adapter instance is created. CKEditor 5 comes with some {@link features/image-upload#official-upload-adapters official upload adapters} but you can also implement your own adapters. See the "How does the image upload work?" section to learn more. |
| {@link module:upload/filerepository~UploadAdapter `UploadAdapter`} interface |
An interface defining the minimal API required to create an upload adapter. In other words, it tells you what methods your upload adapter class must have in order to work. See "The anatomy of the adapter" section to learn more. |
| {@link module:upload/filerepository~FileRepository File repository} plugin |
A central point for managing file upload in CKEditor 5. It glues upload adapters and features using them:
|
| {@link module:image/imageupload~ImageUpload Image upload} plugin |
A top–level plugin that responds to actions of the users (e.g. when a file is dropped into the content) by uploading files to the server and updating the edited content once the upload finishes. This particular plugin handles user actions related to uploading images. It uses the See the "How does the image upload work?" section to learn more. |