PHPackages                             hummingbird-dev/webdav-fileselector - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [File &amp; Storage](/categories/file-storage)
4. /
5. hummingbird-dev/webdav-fileselector

ActiveLibrary[File &amp; Storage](/categories/file-storage)

hummingbird-dev/webdav-fileselector
===================================

Retrieve directory structure from a WebDAV server for selecting one or more files and folders.

v2.0.2(7y ago)042PHP

Since Sep 25Pushed 7y agoCompare

[ Source](https://github.com/hummingbird-dev/webdav-fileselector)[ Packagist](https://packagist.org/packages/hummingbird-dev/webdav-fileselector)[ Docs](https://github.com/hummingbird-dev/webdav-fileselector)[ RSS](/packages/hummingbird-dev-webdav-fileselector/feed)WikiDiscussions master Synced 4w ago

READMEChangelog (7)DependenciesVersions (10)Used By (0)

webdav-fileselector
===================

[](#webdav-fileselector)

A Laravel package for showing and selecting files and folders of a WebDAV server.

Features
--------

[](#features)

- Retrieve a list of files and folders from a WebDAV server
- Use WebDAV API: *propfind*
- No mounting
- Fast
- Supports multi-user
- Supports external usage as API
- Provides a sophisticated client template using the [hummingbird-treeview](https://github.com/hummingbird-dev/hummingbird-treeview) package
- Display files and folders in a hierarchical tree structure
- Different options can be enabled / disabled, e.g.
    - select only one file
    - select one or more files
    - select whole folders
    - select all
- Filter for file types (e.g. .jpg, .txt) and arbitrary patterns
- Convenient search function
- ... and many more

Dependencies
------------

[](#dependencies)

- Laravel 5.5.\*
- PHP 7.0
- cURL extension enabled

Included libraries
------------------

[](#included-libraries)

- jQuery 3.3.1
- bootstrap 4.0.0
- font-awesome
- hummingbird-dev/hummingbird-treeview

This means that these libraries (or parts of them) are included in the webdav-fileselector package. Thus no download / installation of these libraries is needed.

Getting started
---------------

[](#getting-started)

### Installation

[](#installation)

Install via composer and run the command below in the root of your project:

```
composer require hummingbird-dev/webdav-fileselector
```

Add the following under *autoload* to your composer.json (that one in your projects root directory):

```
...
"autoload": {
   ...
   "psr-4": {
      "App\\": "app/",
      "HummingbirdDev\\WebdavFileselector\\":"vendor/hummingbird-dev/webdav-fileselector/src/"
   }
   ...
},
```

Update *composer* from the root of your project:

```
composer update
```

Publish resources from your root folder:

```
php artisan vendor:publish --provider="HummingbirdDev\\WebdavFileselector\\WebdavFileselectorServiceProvider"
```

Usage
-----

[](#usage)

Start a local development server

```
php artisan serve
```

and navigate to

You will see the client template, which can be edited at "/resources/views/hummingbird-dev/webdav-fileselector.blade.php".

Two possibilities exist to include the needed WebDAV credentials and to submit optional settings.

First, the client at "/resources/views/hummingbird-dev/webdav-fileselector.blade.php" can be edited or an additional POST form on any other page can be used to call the client. This form may look like:

```

	Start Fileselector

```

webdav-fileselector as a service
--------------------------------

[](#webdav-fileselector-as-a-service)

The interesting point here is that this HTML form can be implemented on any other web page. So it's possible to provide this service on other web projects. One possibility for integration would be an iframe. That means, placing an iframe onto the page:

```

```

and pointing the form to the iframe with the "target" attribute, which means to open the response of the form POST in the iframe:

```

	...
```

Parameters
----------

[](#parameters)

Following parameters are mendatory:

- **b2drop\_username**
    This is the username needed to login to the WebDAV server.
- **b2drop\_password**
    The corresponding password needed to login to the WebDAV server.
- **b2drop\_url**
    The URL to the WebDAV server. If it is e.g. an *ownCloud* or *nextCloud* instance, the URL is **.

Following settings are optional and have all default values. These settings influence mostly the functionality of the *hummingbird-treeview*, which is used to show the files and folders. All *values* of these settings are strings, although many behave like boolean *true* and *false*.

- **select\_only\_one\_item**
    This parameter can be enabled by *value="1"* or disabled by *value="0"*. Default is *value="1"*. If activated, only single items in the treeview can be checked. This provides the typical feature, where the user is only allowed to select a single file instead of multiple. It is important to note that the parameter **disable\_folder\_checking** should be enabled as well.
- **disable\_folder\_checking**
    To disable the functionality to check whole folders this parameter has to be set to *value="1"* otherwise *value="0"* has to be used. Default is *value="1"*. Activating this parameter is needed, if the above parameter **select\_only\_one\_item** is also activated to restrict the selection of items to single files.
- **show\_only\_parent\_folder**
    This is a special parameter and can be activated by setting *value="1"* or disabled by *value="0"*. Default is *value="0"*. If activated the returned *List* (details below) does not contain the selected files, but instead only the folder, which contains the selected files, i.e. the parent folder.
- **disable\_root\_node**
    Again, this setting can be activated by *value="1"* and deactivated by *value="0"*. Default is *value="0"*. If activated the root node is disabled, which means it cannot be checked.
- **getChecked\_onlyEndNodes**
    This is an important parameter and activated by *value="1"* and deactivated by *value="0"*. Default is *value="1"*. If activated the returned *List* (details below) contains only the checked files and NOT the checked folders.
- **filter**
    Filtering is a powerful option to select only certain files. For instance if *value=".txt"* only files containing ".txt" in their names are shown. Default is an empty string *value=""*, which means no filtering. If *value="myfile"* only files containing "myfile" in the name are shown. Additionally it is possible to filter for multiple strings in a "OR" sense. If *value=".jpg|.png|.bmp"* only files are shown containing ".jpg" or ".png" or ".bmp".
- **fileselector\_height**This parameter defines the height in px of the ``, where the *hummingbird-treeview* is embedded. It is scollable, thus the height can be chosen small if needed. Default is *value="400"* pixel.
- **minimal\_view**If activated by *value="1"* (deactivate by *value="0"*) only a heading, the search field and the treeview are shown. Otherwise a little more markup is included. Default is *value="0"*.
- **jumbotron**This option, if *value="1"* places the treeview on a Bootstrap Jumbotron, i.e. essentially a gray block.

Events -- grabbing the selected files
-------------------------------------

[](#events----grabbing-the-selected-files)

On every file check or uncheck on the *hummingbird-treeview* an event is fired including the selected files. As can be seen in the file *webdav-fileselector.blade.php* there is a small JavaScript snippet at the end of the file:

```
 window.addEventListener("message",function(e) {
     //console.log("message event",e);
     var key = e.message ? "message" : "data";
     data = e[key];
     console.log("file_path= " + data.dataid)
     console.log("file_id= " + data.id)
     console.log("file_text= " + data.text)
 },false);
```

This JavaScript code grabs the *List* of the selected files, which are stored here in the object *data*. This object contains arrays, whereas *data.dataid* contains the full paths to the selected files. The *data.id* contains an id, which is essentially a string together with a running number and not important here. The *data.text* contains the text shown in the *treeview*, which is mostly similar to the real filename.

###  Health Score

29

—

LowBetter than 57% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity8

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity68

Established project with proven stability

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~22 days

Recently: every ~38 days

Total

9

Last Release

2704d ago

Major Versions

v1.0.5 → v2.0.02019-03-18

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/29866001?v=4)[Sebastian Mieruch](/maintainers/hummingbird-dev)[@hummingbird-dev](https://github.com/hummingbird-dev)

---

Top Contributors

[![hummingbird-dev](https://avatars.githubusercontent.com/u/29866001?v=4)](https://github.com/hummingbird-dev "hummingbird-dev (59 commits)")

---

Tags

laravelphpwebdavlaravelWebDAV

### Embed Badge

![Health badge](/badges/hummingbird-dev-webdav-fileselector/health.svg)

```
[![Health](https://phpackages.com/badges/hummingbird-dev-webdav-fileselector/health.svg)](https://phpackages.com/packages/hummingbird-dev-webdav-fileselector)
```

###  Alternatives

[singlequote/laravel-webdav

1353.3k](/packages/singlequote-laravel-webdav)[yoelpc4/laravel-cloudinary

Laravel Cloudinary filesystem cloud driver.

3346.3k](/packages/yoelpc4-laravel-cloudinary)[menthe/aliyun-ueditor

UEditor for laravel5 and Aliyun OSS.Store all images and files in Aliyun OSS. Support i18n. UEditor is a Rich Text Web Editor From Baidu.

172.4k](/packages/menthe-aliyun-ueditor)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
