Attaches Tool for the Editor.js.
This tool allows you to attach files to your articles.
You can get the package using any of these ways.
npm i --save-dev @editorjs/attaches
Include module at your application
const AttachesTool = require('@editorjs/attaches');
- Upload folder
dist
from repository - Add
dist/bundle.js
file to your page.
You can load specific version of package from jsDelivr CDN.
https://cdn.jsdelivr.net/npm/@editorjs/attaches@latest
Then require this script on page with Editor.js through the <script src=""></script>
tag.
Add a new Tool to the tools
property of the Editor.js initial config.
var editor = EditorJS({
...
tools: {
...
attaches: {
class: AttachesTool,
config: {
endpoint: 'http://localhost:8008/uploadFile'
}
}
}
...
});
Attaches Tool supports these configuration parameters:
Field | Type | Description |
---|---|---|
endpoint | string |
Required: endpoint for file uploading. |
field | string |
(default: file ) Name of uploaded file field in POST request |
types | string |
(default: * ) Mime-types of files that can be accepted with file selection. |
buttonText | string |
(default: Select file ) Placeholder for file upload button |
errorMessage | string |
(default: File upload failed ) Message to show if file upload failed |
additionalRequestHeaders | object |
(default:{}) Object with any custom headers which will be added to request. Example: {"X-CSRF-TOKEN": 'W5fe2...hR8d1'} |
This Tool returns data
with following format
Field | Type | Description |
---|---|---|
file | object |
Uploaded file data. Data received from backend uploader. See description below. |
title | string |
File's title. Initially set as uploaded file name. Can be modified by user. |
Object file
consists of the following fields. All of them are optional, size
and extension
are supported by design.
Field | Type | Description |
---|---|---|
url | string |
Full public path of uploaded file |
size | number |
File's size (expected in bytes, according to Tool's design) |
name | string |
File's name |
extension | string |
File's extension |
{
"type" : "attaches",
"data" : {
"file": {
"url" : "https://www.tesla.com/tesla_theme/assets/img/_vehicle_redesign/roadster_and_semi/roadster/hero.jpg",
"size": 91,
"name": "hero.jpg",
"extension": "jpg"
},
"title": "Hero"
}
}
Response of your uploader should cover following format:
{
"success" : 1,
"file": {
// any data you want
// for example: url, name, size
}
}
success - uploading status. 1 for successful, 0 for failed
file - uploaded file data.
Can contain data you want to store. Fields url
, name
, size
, and extension
if present will be written to file object. Fields size and extension are supported by design.