Vue FileManager - Getting Started

NOTE
Before you start the tutorial, ensure DevExtreme is installed in your application.

The FileManager UI component allows users to manage files and directories.

DevExtreme File Manager - Getting Started

View Demo

Create a File Manager

The following code creates the FileManager UI component and adds it to your page.

App.vue
  • <template>
  • <DxFileManager>
  • <!-- ... -->
  • </DxFileManager>
  • </template>
  •  
  • <script>
  • import 'devextreme/dist/css/dx.light.css';
  •  
  • import { DxFileManager } from 'devextreme-vue/file-manager';
  •  
  • export default {
  • components: {
  • DxFileManager
  • },
  • };
  • </script>

Bind the File Manager Component to a File System

Create a file system provider that allows you to access and modify file systems.

NOTE
In this section, the Object file system is used to quickly bind the FileManager UI component to data. Refer to the Bind to File Systems section for more information on supported file systems.

To bind the FileManager UI component to a hierarchical data structure, create an Object file system provider and assign the array of hierarchical JSON objects to the provider's data property. The Object file system provider automatically binds data objects to the UI component if the data objects have the default 'name', 'size', 'dateModified', etc., fields in their structure. For example:

  • var fileSystem = [
  • {
  • name: "MyFolder.jpg",
  • size: 1024,
  • dateModified: "2019/05/08",
  • thumbnail: "/thumbnails/images/jpeg.ico",
  • isDirectory: true,
  • items: [
  • // ...
  • // Nested data objects with the same structure
  • // ...
  • ]
  • // ...
  • }];

In the example below, the FileManager UI component displays hierarchical data stored in an in-memory array that contains fields with conventional names:

App.vue
data.js
  • <template>
  • <DxFileManager
  • :file-system-provider="fileItems">
  • </DxFileManager>
  • </template>
  •  
  • <script>
  • import 'devextreme/dist/css/dx.light.css';
  •  
  • import {
  • DxFileManager
  • } from 'devextreme-vue/file-manager';
  • import { fileItems } from "./data.js";
  •  
  • export default {
  • components: {
  • DxFileManager
  • },
  •  
  • data() {
  • return {
  • fileItems
  • };
  • }
  • };
  • </script>
  • export const fileItems = [{
  • 'name': 'Documents',
  • 'isDirectory': true,
  • 'items': [{
  • 'name': 'Projects',
  • 'isDirectory': true,
  • 'items': [{
  • 'name': 'About.rtf',
  • 'isDirectory': false,
  • 'size': 1024
  • }, {
  • 'name': 'Passwords.rtf',
  • 'isDirectory': false,
  • 'size': 2048
  • }]
  • }, {
  • 'name': 'About.xml',
  • 'isDirectory': false,
  • 'size': 1024
  • }]
  • }];
See Also