Contents
- Required additional dependency
- Additional CSS Reference
Having trouble getting help?
Contact Support
Contact Support
File browser in Vue Rich text editor component
11 Jun 20245 minutes to read
Rich Text Editor allows to browse and insert images in the edit panel using the file browser. File browser allows the users to browse and select a file or folder from the file system and it supports various cloud services.
Required additional dependency
The following list of additional dependencies are required to use the file browser feature in the Rich Text Editor.
|-- @syncfusion/ej2-vue-richtexteditor
|-- @syncfusion/ej2-layouts
|-- @syncfusion/ej2-grids
|-- @syncfusion/ej2-filemanager
Additional CSS Reference
Additionally add the styles as given below in <style>
section of the App.vue
file.
<style>
@import "../node_modules/@syncfusion/ej2-layouts/styles/material.css";
@import "../node_modules/@syncfusion/ej2-grids/styles/material.css";
@import "../node_modules/@syncfusion/ej2-filemanager/styles/material.css";
</style>
The following example explains about how to configure the file browser within the Rich Text Editor component.
- Configure the
FileManager
toolbar item in thetoolbarSettings
APIitems
property. - Set
enable
property astrue
onfileManagerSettings
property to make the file browser in the Rich Text Editor to appear on theFileManager
toolbar click action.
Rich Text Editor features are segregated into individual feature-wise modules. To use the file browser tool, configure
FileManager
in the provider.
<template>
<ejs-richtexteditor :toolbarSettings="toolbarSettingsData" :value="rteValue" :fileManagerSettings="fileManagerSettingsData"></ejs-richtexteditor>
</template>
<script setup>
import { provide } from "vue";
import { RichTextEditorComponent as EjsRichtexteditor, Toolbar, Link, Image, HtmlEditor, QuickToolbar, FileManager } from '@syncfusion/ej2-vue-richtexteditor';
const rteValue=`<p>The Syncfudion Rich Text Editor, a WYSIWYG (what you see is what you get) editor, is a user interface that allows you to create, edit, and format rich text content. You can try out a demo of this editor here.</p><p><b>Key features:</b></p><ul><li><p>Provides <IFRAME> and <DIV> modes.</p></li><li><p>Bulleted and numbered lists.</p></li><li><p>Handles images, hyperlinks, videos, hyperlinks, uploads, etc.</p></li><li><p>Contains undo/redo manager. </p></li></ul><div style='display: inline-block; width: 60%; vertical-align: top; cursor: auto;'><img alt='Sky with sun' src='https://cdn.syncfusion.com/ej2/richtexteditor-resources/RTE-Overview.png' width='309' style='min-width: 10px; min-height: 10px; width: 309px; height: 174px;' class='e-rte-image e-imginline e-rte-drag-image' height='174' /></div>`;
const toolbarSettingsData = {
items: ['FileManager']
};
const fileManagerSettingsData = {
enable: true,
path: '/Pictures/Food',
ajaxSettings: {
url: 'https://ej2-aspcore-service.azurewebsites.net/api/FileManager/FileOperations',
getImageUrl: 'https://ej2-aspcore-service.azurewebsites.net/api/FileManager/GetImage',
uploadUrl: 'https://ej2-aspcore-service.azurewebsites.net/api/FileManager/Upload',
downloadUrl: 'https://ej2-aspcore-service.azurewebsites.net/api/FileManager/Download'
}
};
provide('richtexteditor', [Toolbar, Link, Image, HtmlEditor, QuickToolbar, FileManager]);
</script>
<style>
@import "../../node_modules/@syncfusion/ej2-base/styles/material.css";
@import "../../node_modules/@syncfusion/ej2-buttons/styles/material.css";
@import "../../node_modules/@syncfusion/ej2-popups/styles/material.css";
@import "../../node_modules/@syncfusion/ej2-inputs/styles/material.css";
@import "../../node_modules/@syncfusion/ej2-lists/styles/material.css";
@import "../../node_modules/@syncfusion/ej2-layouts/styles/material.css";
@import "../../node_modules/@syncfusion/ej2-grids/styles/material.css";
@import "../../node_modules/@syncfusion/ej2-splitbuttons/styles/material.css";
@import "../../node_modules/@syncfusion/ej2-navigations/styles/material.css";
@import "../../node_modules/@syncfusion/ej2-filemanager/styles/material.css";
@import "../../node_modules/@syncfusion/ej2-vue-richtexteditor/styles/material.css";
</style>
<template>
<ejs-richtexteditor :toolbarSettings="toolbarSettingsData" :value="rteValue" :fileManagerSettings="fileManagerSettingsData">
</ejs-richtexteditor>
</template>
<script>
import { RichTextEditorComponent, Toolbar, Link, Image, HtmlEditor, QuickToolbar, FileManager } from '@syncfusion/ej2-vue-richtexteditor';
export default {
name: "App",
components: {
"ejs-richtexteditor":RichTextEditorComponent
},
data() {
return {
rteValue: `<p>The Syncfudion Rich Text Editor, a WYSIWYG (what you see is what you get) editor, is a user interface that allows you to create, edit, and format rich text content. You can try out a demo of this editor here.</p><p><b>Key features:</b></p><ul><li><p>Provides <IFRAME> and <DIV> modes.</p></li><li><p>Bulleted and numbered lists.</p></li><li><p>Handles images, hyperlinks, videos, hyperlinks, uploads, etc.</p></li><li><p>Contains undo/redo manager. </p></li></ul><div style='display: inline-block; width: 60%; vertical-align: top; cursor: auto;'><img alt='Sky with sun' src='https://cdn.syncfusion.com/ej2/richtexteditor-resources/RTE-Overview.png' width='309' style='min-width: 10px; min-height: 10px; width: 309px; height: 174px;' class='e-rte-image e-imginline e-rte-drag-image' height='174' /></div>`,
toolbarSettingsData: {
items: ['FileManager']
},
fileManagerSettingsData: {
enable: true,
path: '/Pictures/Food',
ajaxSettings: {
url: 'https://ej2-aspcore-service.azurewebsites.net/api/FileManager/FileOperations',
getImageUrl: 'https://ej2-aspcore-service.azurewebsites.net/api/FileManager/GetImage',
uploadUrl: 'https://ej2-aspcore-service.azurewebsites.net/api/FileManager/Upload',
downloadUrl: 'https://ej2-aspcore-service.azurewebsites.net/api/FileManager/Download'
}
}
}
},
provide: {
richtexteditor: [Toolbar, Link, Image, HtmlEditor, QuickToolbar, FileManager]
}
}
</script>
<style>
@import "../../node_modules/@syncfusion/ej2-base/styles/material.css";
@import "../../node_modules/@syncfusion/ej2-buttons/styles/material.css";
@import "../../node_modules/@syncfusion/ej2-popups/styles/material.css";
@import "../../node_modules/@syncfusion/ej2-inputs/styles/material.css";
@import "../../node_modules/@syncfusion/ej2-lists/styles/material.css";
@import "../../node_modules/@syncfusion/ej2-layouts/styles/material.css";
@import "../../node_modules/@syncfusion/ej2-grids/styles/material.css";
@import "../../node_modules/@syncfusion/ej2-splitbuttons/styles/material.css";
@import "../../node_modules/@syncfusion/ej2-navigations/styles/material.css";
@import "../../node_modules/@syncfusion/ej2-filemanager/styles/material.css";
@import "../../node_modules/@syncfusion/ej2-vue-richtexteditor/styles/material.css";
</style>