New to Telerik UI for ASP.NET AJAX? Download free 30-day trial

Custom File Dialogs Content Provider

  • Show/Hide Border
  • Table Properties
  • Delete Table
  • Row
    • Insert Row Above
    • Insert Row Below
    • Delete Row
  • Column
    • Insert Column to the Left
    • Insert Column to the Right
    • Delete Column
  • Cell
    • Merge Cells Horizontally
    • Merge Cells Vertically
    • Split Cell Horizontally
    • Split Cell Vertically
    • Delete Cell
  • Cell Properties
  • Table Properties
  • Properties...
  • Image Map Editor
  • Properties...
  • OpenLink
  • Remove Link
  • Insert Select
  • Cut
  • Copy
  • Paste
  • Paste from Word
  • Paste Plain Text
  • Paste As Html
  • Paste Html

Database File Provider

This example demonstrates the implementation of a custom FileBrowserContentProvider, using a SQL database as a file source. In the offline demos instalation the DBContentProvider class is available in the App_Code\Editor\ folder or in this code library.

Custom FileBrowserContentProvider implementation allows using virtually any type of file sources for the FileBrowser dialogs (Image Manager, DocumentManager, Media Manager, Flash Manager, Template Manager):

  • Database
  • Custom role-based CMS system
  • Web service
  • Applications which use URL Rewriters
The DBFileBrowserContentProvider class inherits the abstract Telerik.Web.UI.Widgets.FileBrowserContentProvider class and implements its abstract members:
  • ResolveRootDirectoryAsTree- Called in order to load all subfolders of the passed as parameter folder
  • ResolveDirectory - Called in order to load all files of the passed as parameter folder
  • StoreFile - called to save an uploaded file to the storage
  • DeleteFile - called when user deletes a file
  • DeleteDirectory - called when user deletes a directory
  • CreateDirectory - called when user creates a directory
  • CanCreateDirectory - a readonly property, which value identifies if the New Directory icon will exist in the FileBrowser
  • GetFile - used in two cases: 1) to identify if a file with the same name exists in the same path when uploading a file; 2) when creating a thumbnail used to get the original image content
  • StoreBitmap - used to save a newly created bitmap to the storage
  • GetFileName - used to return the name of a file with given URL
  • GetPath - used to return the path of an item (file or directory) with given URL

DBFileBrowserContentProvider uses a helper DataServer class, designed to handle the database operation functions.

The file content is stored in the database and is served by the content-streamer Handler.ashx file.

Related Resources

  • DefaultCS.aspx
  • DefaultCS.aspx.cs
  • DBFileBrowserContentProvider.xml
<%@ Page Theme="Default" Language="c#" CodeFile="DefaultCS.aspx.cs" AutoEventWireup="true"    Inherits="Telerik.Web.Examples.Editor.DBFileBrowserContentProvider.DefaultCS" %>

<%@ Register TagPrefix="telerik" Namespace="Telerik.Web.UI" Assembly="Telerik.Web.UI" %>
<!DOCTYPE html>
<html xmlns='http://www.w3.org/1999/xhtml'>
<head runat="server">
    <title>Telerik ASP.NET Example</title>
<link href="../Common/styles.css" rel="stylesheet" type="text/css" />
</head>
<body>
    <form id="form1" runat="server">
    <telerik:RadScriptManager runat="server" ID="RadScriptManager1" />
    <telerik:RadSkinManager ID="RadSkinManager1" runat="server" ShowChooser="true" />
    <div class="demo-container size-wide">
        <telerik:RadEditor RenderMode="Lightweight" ID="RadEditor1" runat="server" ToolsFile="./DBFileBrowserContentProvider.xml" Width="800px">
            <Content>
            <img alt="" src="../../../Editor/Examples/DBFileBrowserContentProvider/Handler.ashx?path=Root%252fImages%252fNature%252fFruits%252f320155_1886Thumbnail.jpg" />
            - The custom content provider provides a complete abstraction for files/folders in the file browser dialogs of the editor. 
            <br /><br />This means that the user can create folders, upload, move, delete files and everything will be stored in a single table in the database. No physical files or folders will be created on the server. Accessing
                        the files from the database is performed with a HTTP handler (<em>Handler.ashx</em>). 
            <br /><br />If the user uploaded an image to the database and then inserted it 
                        in the editor, the image's URL will look in a similar way (so the browser makes a request for the HTTP Handler):
            <br /><strong>Handler.ashx?path=Root%252fImages%252fNature%252fFruits%252f320155_1886Thumbnail.jpg</strong>
            </Content>
        </telerik:RadEditor>
    </div>
    </form>
</body>
</html>

Support & Learning Resources

Find Assistance