New to Kendo UI for jQuery? Download free 30-day trial

Commands

The FileManager component provides the following commands that can be executed using the executeCommand method:

Below you will find examples for each of the commands:

CreateFolderCommand

You can use the command to add a new folder in the FileManager.

    <button id='createFolder'>Create Folder Command</button>
    <div id="filemanager"></div>

    <script>
      $("#filemanager").kendoFileManager({
        dataSource: {
          schema: kendo.data.schemas.filemanager,
          transport: {
            read: {
              url: "https://demos.telerik.com/kendo-ui/service/FileManager/Read",
              method: "POST"
            },
            create: {
              url: "https://demos.telerik.com/kendo-ui/service/FileManager/Create",
              method: "POST"
            },
            update: {
              url: "https://demos.telerik.com/kendo-ui/service/FileManager/Update",
              method: "POST"
            },
            destroy: {
              url: "https://demos.telerik.com/kendo-ui/service/FileManager/Destroy",
              method: "POST"
            }
          }
        },
        uploadUrl: "https://demos.telerik.com/kendo-ui/service/FileManager/Upload",

      });

      $(document).ready(function () {
        $("#createFolder").on('click', () => {
          var filemanager = $("#filemanager").getKendoFileManager();

          filemanager.executeCommand({ command: "CreateFolderCommand" });
        });
      })
    </script>

RenameCommand

Use the command to open the popup for renaming a folder or for start editing the name of a file.

  <input type="button" value="Rename Folder" onclick="renameFolder()" />
  <input type="button" value="Rename Selected File" onclick="renameFile()" />
  <div id="filemanager"></div>

  <script>
    $("#filemanager").kendoFileManager({
      dataSource: {
        schema: kendo.data.schemas.filemanager,
        transport: {
          read: {
            url: "/kendo-ui/service/FileManager/Read",
            method: "POST"
          },
          create: {
            url: "/kendo-ui/service/FileManager/Create",
            method: "POST"
          },
          update: {
            url: "/kendo-ui/service/FileManager/Update",
            method: "POST"
          },
          destroy: {
            url: "/kendo-ui/service/FileManager/Destroy",
            method: "POST"
          }
        }
      },
      uploadUrl: "/kendo-ui/service/FileManager/Upload"  
    });

    function renameFolder() {

      var filemanager = $("#filemanager").data("kendoFileManager");

      var selectedFolder = $(".k-filemanager-treeview").find(".k-selected").parents(".k-item");

      if (selectedFolder.length > 0) {
        filemanager.executeCommand({ command: "RenameCommand", options: { target: $(".k-filemanager-treeview").find(".k-selected").parents(".k-item"), item: filemanager.getSelected()[0] } })
      }
      else {
        alert("Select a folder in the tree");
      }
    }

    function renameFile() {

      var filemanager = $("#filemanager").data("kendoFileManager");

      var selectedFile = $(".k-listview-item.k-selected");

      if (selectedFile.length > 0) {
        filemanager.executeCommand({ command: "RenameCommand", options: { target: selectedFile, item: filemanager.getSelected()[0] } })
      }
    }

  </script>

DeleteCommand

The command allows you to delete file or folder in the FileManager.

    <button onclick="deleteSelected()">Delete Selected</button>

    <div id="filemanager"></div>
    <script>
      var myData = [
        {
          name: "Folder",
          isDirectory: true,
          hasDirectories: false,
          path: "folder",
          extension: "",
          size: 0,
          createdUtc: new Date(),
          items: [
            {
              name: "Image.jpg",
              isDirectory: false,
              hasDirectories: false,
              path: "folder/Image.jpg",
              extension: ".jpg",
              size: 20,
              createdUtc: new Date(),
            },
            {
              name: "Image2.jpg",
              isDirectory: false,
              hasDirectories: false,
              path: "folder/Image2.jpg",
              extension: ".jpg", 
              size: 20,
              createdUtc: new Date(),
            }
          ]        
        }
      ];
      $("#filemanager").kendoFileManager({               
        dataSource: {
          schema: kendo.data.schemas.filemanager,
          data: myData
        }
      });     

      function deleteSelected(){
        var fileManager = $("#filemanager").getKendoFileManager();
        var elem = $("div.k-filemanager-content .k-selected");
        fileManager.executeCommand({
          command:"DeleteCommand",
          options:{
            target:elem
          }
        })
      }

    </script>

MoveCommand

The Move command will call the Create endpoint for adding the file to its new destination and the Destroy remote endpoint as the selected file is deleted from the origin folder. Below is an example for using the MoveCommand.

    let fileManager = $("#filemanager").getKendoFileManager();
    let selectedIDs = fileManager.getSelected().map(function (item) {
      return item.id;
    });         


    fileManager.executeCommand({
      command: "MoveCommand",
      options: {
        items: selectedIDs,
        target: "Documents", //the targeted folder where the files will be moved
        targetDataSource: fileManager.dataSource
      }
    })

CopyCommand

The copy command will call the Create remote endpoint as the selected file is not deleted from the destination. In the example below a create request containing the path to the selected file and target folder 'Documents' will be sent.

    let fileManager = $("#filemanager").getKendoFileManager();
    let selectedIDs = fileManager.getSelected().map(function (item) {
      return item.id;
    });


    fileManager.executeCommand({
      command: "CopyCommand",
      options: {
        items: selectedIDs,
        target: "Documents",
        dataSource: fileManager.dataSource,
        targetDataSource: fileManager.dataSource
      }
    })

SortCommand

The sort command provides an option to sort the items in the FileManager by specific field and direction.

    <button id="sort">Sort Descending</button>
    <div id="filemanager"></div>

    <script>
      $("#filemanager").kendoFileManager({
        dataSource: {
          schema: kendo.data.schemas.filemanager,
          transport: {
            read: {
              url: "https://demos.telerik.com/kendo-ui/service/FileManager/Read",
              method: "POST"
            },
            create: {
              url: "https://demos.telerik.com/kendo-ui/service/FileManager/Create",
              method: "POST"
            },
            update: {
              url: "https://demos.telerik.com/kendo-ui/service/FileManager/Update",
              method: "POST"
            },
            destroy: {
              url: "https://demos.telerik.com/kendo-ui/service/FileManager/Destroy",
              method: "POST"
            }
          }
        },
        uploadUrl: "https://demos.telerik.com/kendo-ui/service/FileManager/Upload"
      });

      $('#sort').on('click', function(){

        var fileManager = $("#filemanager").getKendoFileManager();
        fileManager.executeCommand({ 
          command: "SortCommand", 
          options: { 
            dir: "desc",
            field: "name"
          } 
        });
      })

    </script>

SearchCommand

The command allows you to perform search on the currently rendered files and folders. The search will not be performed in the nested items. You can pass the field and value based on which the search will be applied as well as the filter operator.

    <input type="text" id="search-input" />
    <button id="search">Sort Descending</button>
    <div id="filemanager"></div>

    <script>
      $("#filemanager").kendoFileManager({
        dataSource: {
          schema: kendo.data.schemas.filemanager,
          transport: {
            read: {
              url: "https://demos.telerik.com/kendo-ui/service/FileManager/Read",
              method: "POST"
            },
            create: {
              url: "https://demos.telerik.com/kendo-ui/service/FileManager/Create",
              method: "POST"
            },
            update: {
              url: "https://demos.telerik.com/kendo-ui/service/FileManager/Update",
              method: "POST"
            },
            destroy: {
              url: "https://demos.telerik.com/kendo-ui/service/FileManager/Destroy",
              method: "POST"
            }
          }
        },
        uploadUrl: "https://demos.telerik.com/kendo-ui/service/FileManager/Upload"
      });

      $('#search').on('click', function(){

        var fileManager = $("#filemanager").getKendoFileManager();
        let text = $("#search-input").val()
        fileManager.executeCommand({
          command:"SearchCommand", 
          options:{
            field:"name", 
            operator:"contains", 
            value: text
          }
        })
      })

    </script>

ChangeViewCommand

You can switch between the grid and the list view to display the files in the FileManager.

  <button id="btn">Switch view</button>
  <div id="filemanager"></div>

  <script>
    $("#filemanager").kendoFileManager({
      dataSource: {
        schema: kendo.data.schemas.filemanager,
        transport: {
          read: {
            url: "https://demos.telerik.com/kendo-ui/service/FileManager/Read",
            method: "POST"
          },
          create: {
            url: "https://demos.telerik.com/kendo-ui/service/FileManager/Create",
            method: "POST"
          },
          update: {
            url: "https://demos.telerik.com/kendo-ui/service/FileManager/Update",
            method: "POST"
          },
          destroy: {
            url: "https://demos.telerik.com/kendo-ui/service/FileManager/Destroy",
            method: "POST"
          }
        }
      }
    });

    $('#btn').on('click', function(){

      var fileManager = $("#filemanager").getKendoFileManager();          
      var view = fileManager.view()      
      var toggle = view.listView == undefined ? $('.k-button[title="List View"]') : $('.k-button[title="Grid View"]')
      var current = view.listView == undefined ? 'list' : 'grid'          

      fileManager.executeCommand({ 
        command: "ChangeViewCommand", 
        options: current
      });   
      fileManager.toolbar.toggle(toggle, true);
    })

  </script>

OpenDialogCommand

You can use the command to pass in the options the dialog that should be opened.

  <button id="btn">Open Upload Dialog</button>
  <div id="filemanager"></div>

  <script>
    $("#filemanager").kendoFileManager({
      dataSource: {
        schema: kendo.data.schemas.filemanager,
        transport: {
          read: {
            url: "https://demos.telerik.com/kendo-ui/service/FileManager/Read",
            method: "POST"
          },
          create: {
            url: "https://demos.telerik.com/kendo-ui/service/FileManager/Create",
            method: "POST"
          },
          update: {
            url: "https://demos.telerik.com/kendo-ui/service/FileManager/Update",
            method: "POST"
          },
          destroy: {
            url: "https://demos.telerik.com/kendo-ui/service/FileManager/Destroy",
            method: "POST"
          }
        }
      },
      uploadUrl: "https://demos.telerik.com/kendo-ui/service/FileManager/Upload"
    });

    $('#btn').on('click', function(){

      var fileManager = $("#filemanager").getKendoFileManager();

      fileManager.executeCommand({ 
        command: "OpenDialogCommand",
        options: { type: "uploadDialog"}
      });
    })

  </script>

TogglePaneCommand

The toggle pane command opens the preview pane for reviewing the file details.

    <script id="preview-template" type="text/kendo-ui-template">
      <strong> My custom single pane template </strong>
    </script>

    <button id="btn">Toggle Preview Pane</button>
    <div id="filemanager"></div>

    <script>
      $("#filemanager").kendoFileManager({
        dataSource: {
          schema: kendo.data.schemas.filemanager,
          transport: {
            read: {
              url: "https://demos.telerik.com/kendo-ui/service/FileManager/Read",
              method: "POST"
            },
            create: {
              url: "https://demos.telerik.com/kendo-ui/service/FileManager/Create",
              method: "POST"
            },
            update: {
              url: "https://demos.telerik.com/kendo-ui/service/FileManager/Update",
              method: "POST"
            },
            destroy: {
              url: "https://demos.telerik.com/kendo-ui/service/FileManager/Destroy",
              method: "POST"
            }
          }
        },
        uploadUrl: "https://demos.telerik.com/kendo-ui/service/FileManager/Upload",
        previewPane: {
          singleFileTemplate: kendo.template($("#preview-template").html())
        },
      });

      $('#btn').on('click', function(){
        var filemanager = $("#filemanager").getKendoFileManager();
        filemanager.executeCommand({ command: "TogglePaneCommand", options: { type: "preview" } });
      })
    </script>

See Also

In this article