File Manager ожидает бэкенд сервер для загрузки данных. Передайте ссылку на сервер через параметр url:
webix.ui({
view: "filemanager",
url:"http://localhost:3200/"
});
Вы можете скачать готовый бэкенд для File Manager.
Если у вас нет бэкенд сервера, вы можете кастомизировать методы сервиса Backend и предоставлять клиентские данные в виде промиса.
Иконки и превью-изображения для файлов генерируются сервисом Backend.
File Manager не загружает все данные сразу: только корневой элемент и изначально открытую папку.
Содержимое остальных директорий подгружается по необходимости (при открытии) и кэшируется.
Сервис Backend это серверная модель, у которой есть методы для запросов на сервер. Они вызываются сервисом Operations при необходимости загрузки или сохранения данных.
Ниже вы найдёте полный список методов.
Чтобы менять запросы, получать и обрабатывать ответные данные вы можете:
class MyBackend extends fileManager.services.Backend {
// новые методы
}
webix.ui({
view: "filemanager",
url: "https://docs.webix.com/filemanager-backend/",
override: new Map([[fileManager.services.Backend, MyBackend]]),
});
Вы можете отправлять AJAX запросы своему серверу:
class MyBackend extends fileManager.services.Backend {
files(id) {
return webix.ajax("//localhost:3200/files", { id })
.then((data) => data.json());
}
}
Вы можете обращаться к файлам на сервере:
class MyBackend extends fileManager.services.Backend {
icon(type, name, size) {
return `//localhost:3200/icons/${size || "small"}/image/jpg.svg`;
}
}
В случае необходимости вы можете вернуться клиентские данные промисом:
class MyBackend extends fileManager.services.Backend {
getInfo() {
return Promise.resolve({
stats:{
free: 52 * 1000 * 1000,
total: 250 * 1000 * 1000,
used: 198.4 * 1000 * 1000,
}
});
}
}
Related sample: File Manager: Data Source
В этой секции вы найдёте детальное описание следующих методов:
url() используется другими методами для подготовки URL к запросам на сервер.
Parameters:
Returns: абсолютный путь.
Метод вызывается при открытии директории.
Parameters:
Returns: промис с массивом массивом файлов.
Request:
GET http://localhost:3200/files?id=%2Fnew%20directory
Response:
Сервер возвращает массив объектов файлов директории.
[
{"value":"puppy.jpeg","id":"/new directory/puppy.jpeg",
"size":0,"date":1584377524,"type":"image"},
{"value":"text.txt","id":"/new directory/text.txt",
"size":0,"date":1584377353,"type":"code"}
// другие объекты
]
Метод возвращает файлы и директории, названия которых соответствуют тексту поисковой строки.
Parameters:
Returns: промис с массивом файлов и директорий.
Request:
GET http://localhost:3200/files?id=%2F&search=item
Response:
Сервер возвращает массив объектов файлов, названия которых соответствуют тексту поисковой строки. При отсутствии таковых, сервер возвращает пустой массив.
[
{"value":"item.txt","id":"/item.txt","size":0,"date":1584627123,"type":"code"},
// другие совпадения, если есть
]
Метод вызывается при инициализации виджета и отображает все папки.
Request:
GET http://localhost:3200/folders
Response:
Сервер возвращает иерархию всех директорий.
[
{"value":"new directory","id":"/new directory","size":0,"date":1584377524,
"type":"folder"},
{"value":"another directory","id":"/another directory","size":0,"date":1584376369,"type":"folder",
"data":[
{"value":"inner directory","id":"/another directory/inner directory","size":0,
"date":1584376388,"type":"folder"}
]
}
]
Возвращает путь к иконке на сервисе.
Parameters:
Returns: строка URL.
Request:
GET http://localhost:3200/icons/small/code/txt.svg
URL включает в себя размер иконки (small/big), тип (code, image...) и расширение файла.
Response:
Сервер возвращает иконку.
Иконка каждого типа загружается один раз и после переиспользуется браузером по необходимости
Метод используется для загрузки файлов.
Returns: URL для загрузки файлов (по умолчанию, "http://localhost:3200/upload").
В случае ошибки, сервер возвращает объект со следующими данными:
{
invalid: true,
err: "Some error message here"
}
Читает и возвращает содержимое текстового файла (type:"code").
Parameters:
Returns: промис с содержимым текстового файла.
Request:
GET http://localhost:3200/text?id=%2Fitem.txt
Метод сохраняет текстовый файл с новым содержимым на сервер.
Parameters:
Returns: промис с данными файла.
Request:
POST http://localhost:3200/text
Form Data
id: /write.txt
content: Привет, я текст :)
Response:
Сервер возвращает объект с данными файла.
{
"value":"write.txt","id":"/write.txt","size":42,
"date":1584632624,"type":"code"
}
Метод используется для просмотра и скачивания файла.
Parameters:
Returns: абсолютный путь.
Request:
GET http://localhost:3200/direct?id=%2Fimage.jpg&download=true
Возвращает прямую ссылку к сгенерированному превью файла.
Parameters:
Returns: путь к превью файла.
Request:
GET http://localhost:3200/preview?width=464&height=407&id=%2Fimage.jpg
Response:
Сервер возвращает превью изображение.
Метод удаляет файл или директорию.
Parameters:
Returns: промис с ответом с сервера (успешно или ошибка).
Request:
POST http://localhost:3200/delete
Form Data
id: /data.js
В случае ошибки, сервер возвращает объект со следующими данными:
{
invalid: true,
err: "Some error message here"
}
Создаёт папку и возвращает объект с данными директории.
Parameters:
Returns: промис с данными папки.
Request:
POST http://localhost:3200/makedir
Form Data
id: /
name: University
Response:
Сервер возвращает объект с данными папки.
{
"value":"New folder","id":"/New folder","size":0,
"date":1584634921,"type":"folder"
}
В случае ошибки, сервер возвращает объект со следующими данными:
{
invalid: true,
err: "Some error message here"
}
Создаёт пустой файл и возвращает объект к данными файла.
Parameters:
Returns: промис с данными файла.
Request:
POST http://localhost:3200/makefile
Form Data
id: /
name: Poetry.txt
Response:
Сервер возвращает объект с данными файла.
{
"value":"New file.txt","id":"/New file.txt","size":0,
"date":1584635214,"type":"code"
}
В случае ошибки, сервер возвращает объект со следующими данными:
{
invalid: true,
err: "Some error message here"
}
Метод копирует файл/папку.
Parameters:
Returns: промис с объектом данных файла или папки.
Request:
POST http://localhost:3200/copy
Form Data
id: /Poetry.txt
to: /University
Response:
Сервер возвращает объект с данными файла или папки.
{
"value":"write.txt","id":"/new directory/write.txt","size":42,
"date":1584635434,"type":"code"
}
В случае ошибки, сервер возвращает объект со следующими данными:
{
invalid: true,
err: "Some error message here"
}
Метод перемещает файл или папку в новую директорию.
Parameters:
Returns: промис с данными файла или папки.
Request:
POST http://localhost:3200/move
Form Data
id: /Poetry.txt
to: /University
Response:
Сервер возвращает объект с данными файла или папки.
{
"value":"move.txt","id":"/New folder/move.txt","size":0,
"date":1584635665,"type":"code"
}
В случае ошибки, сервер возвращает объект со следующими данными:
{
invalid: true,
err: "Some error message here"
}
Метод переименовывает файл/папку.
Parameters:
Returns: промис с объектом ID.
Request:
POST http://localhost:3200/rename
Form Data
id: /New file.txt
name: Renamed.txt
Response:
Сервер возвращает объект с ID файла и служебной информацией:
{
"invalid":false,"error":"","id":"/Renamed.txt"
}
В случае ошибки, сервер возвращает объект со следующими данными:
{
invalid: true,
err: "Some error message here"
}
Метод возвращает название корневой директории (строка. По умолчанию "My Files").
Метод возвращает мета данные изображений, аудио и видео файлов (для большинства расширений: MP3, MP4, JPEG, и др.).
Parameters:
Returns: промис с объектом мета тэгов (для изображений и аудио).
Request:
GET http://localhost:3200/meta?id=%2Fimage.jpg
Response:
Сервер возвращает объект с мета данными файла.
{
"Title":"IAMX - Little Deaths","Artist":"IAMX",
"Album":"Unfall","Year":"2017","Genre":"Electronic"
}
Метод возвращает данные корневой директории (общее, свободное и использованное пространство памяти; в байтах)
Parameters:
Returns: промис с объектом характеристики вашей файловой системы.
Request:
GET http://localhost:3200/info
Response:
Сервер возвращает пару объектов.
Первый содержит статистику вашей файловой системы:
{
stats: {
free: 52000000,
total: 250000000,
used: 198400000
}
}
Второй содержит типы файлов, для которых сервер может показывать превью контента и возвращать метаданные:
"features": {
"preview": {
"code": true,
"document": true,
"image": true
},
"meta": {
"audio": true,
"image": true
}
}
Наверх