# UploadAdapter

interface

Upload adapter interface used by the [file repository](module_upload_filerepository-FileRepository.md) to handle file upload. An upload adapter is a bridge between the editor and server that handles file uploads. It should contain a logic necessary to initiate an upload process and monitor its progress.

Learn how to develop your own upload adapter for CKEditor 5 in the ["Custom upload adapter"](../framework/deep-dive/upload-adapter.md) guide.

UploadAdapter

[See source](https://github.com/ckeditor/ckeditor5/blob/master/packages/ckeditor5-upload/src/filerepository.ts#L587)

<a id="methods">

## Methods

<a id="function-abort">

### `abort() → void`

Aborts the upload process. After aborting it should reject promise returned from [upload()](#function-upload).

Take a look at [example Adapter implementation](module_upload_filerepository-UploadAdapter.md) and [createUploadAdapter method](module_upload_filerepository-FileRepository.md#member-createUploadAdapter).

[See source](https://github.com/ckeditor/ckeditor5/blob/master/packages/ckeditor5-upload/src/filerepository.ts#L645)

#### Returns

* `void`

<a id="function-upload">

### `upload() → Promise<UploadResponse>`

Executes the upload process. This method should return a promise that will resolve when data will be uploaded to server. Promise should be resolved with an object containing information about uploaded file:

```json
{
	default: 'http://server/default-size.image.png'
}
```

Additionally, other image sizes can be provided:

```json
{
	default: 'http://server/default-size.image.png',
	'160': 'http://server/size-160.image.png',
	'500': 'http://server/size-500.image.png',
	'1000': 'http://server/size-1000.image.png',
	'1052': 'http://server/default-size.image.png'
}
```

You can also pass additional properties from the server. In this case you need to wrap URLs in the `urls` object and pass additional properties along the `urls` property.

```json
{
	myCustomProperty: 'foo',
	urls: {
		default: 'http://server/default-size.image.png',
		'160': 'http://server/size-160.image.png',
		'500': 'http://server/size-500.image.png',
		'1000': 'http://server/size-1000.image.png',
		'1052': 'http://server/default-size.image.png'
	}
}
```

NOTE: When returning multiple images, the widest returned one should equal the default one. It is essential to correctly set `width` attribute of the image.

Take a look at [example Adapter implementation](module_upload_filerepository-UploadAdapter.md) and [createUploadAdapter method](module_upload_filerepository-FileRepository.md#member-createUploadAdapter).

[See source](https://github.com/ckeditor/ckeditor5/blob/master/packages/ckeditor5-upload/src/filerepository.ts#L636)

#### Returns

* `Promise<UploadResponse>`

  Promise that should be resolved when data is uploaded.

---

Full index of the CKEditor 5 API reference: [llms.txt](llms.txt)
