Giter Site home page Giter Site logo

huwjeffries / elfinder.net.core Goto Github PK

View Code? Open in Web Editor NEW

This project forked from trannamtrung1st/elfinder.net.core

0.0 0.0 0.0 346 KB

An elFinder backend connector with less magic code and more compatibility. This enables .NET Standard 2.0 projects to easily integrate elFinder functionalities.

License: Apache License 2.0

C# 94.64% HTML 4.67% CSS 0.59% JavaScript 0.10%

elfinder.net.core's Introduction

elFinder.Net.Core

Logo

Getting Started

  1. Install the NuGet package: https://www.nuget.org/packages/elFinder.Net.Core/
  2. Look at the basic demo project for an example of how to integrate it into your web project. (the example uses ASP.NET Core 3.1 and some additional packages listed below).

Advanced

The advanced demo project has some additional use cases enabled, including:

  • Integrate Authentication/Authorization (Cookies, OAuth2 JWT).
  • Multi-tenant support.
  • Events
  • Integrate Quota management plugin.
  • For an example of how to write a plugin, see Logging plugin example. This plugin intercepts all method calls of IConnector and IDriver instances then logs the method's information (arguments, method name, return value, .etc) to the console output.

Customization

Since file management is a complex topic and the requirements are diverse, here are some ways to customize the library:

  1. Override the default implementation
  2. Use interceptors (as those plugins here which use Castle DynamicProxy and built-in .NET Core DI container).

Some important classes and their descriptions:

  • IConnector/Connector: the backend connector which handles elFinder commands sent from clients.
  • IDriver/FileSystemDriver: the driver which provides a storage mechanism (in this case, the OS file system). There are other drivers for different storage, e.g, elFinder AzureStorage.
  • IFile/FileSystemFile; IDirectory/FileSystemDirectory: the file system's abstractions/implementations.
  • Others: please download the repository, then run the demo projects. They should walk through all of the important classes.

About this repository

There are 3 main projects:

  • elFinder.Net.Core: the core backend connector for elFinder.
  • elFinder.Net.AspNetCore: enable ASP.NET Core 2.2 projects to easily integrate the connector package.
  • elFinder.Net.Drivers.FileSystem: the default Local File System driver.

Plugins:

  • Plugins/elFinder.Net.Plugins.FileSystemQuotaManagement: enable quota management and restriction features.

Credits

elFinder.Net.Core is based on the project elFinder.NetCore of Matt Gordon. Many thanks for the excellent works. For those who may get confused about which package to use, try and find the one that best suits your project. I create this with some modification that suits my use cases and the repository is currently active. Some of the main differences are:

  • Enable better security, ACL (for both Frontend and Backend)
  • Support .NET Standard 2.0 (remove ASP.NET Core dependency).
  • Customizable through models, interfaces, and events.
  • More features and extensibility: plugins, interceptors, etc.
  • Support more commands.
  • Follow the specification from https://github.com/Studio-42/elFinder/wiki more strictly.

elfinder.net.core's People

Contributors

trannamtrung1st avatar trung-tran-sts avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.