Проект представляет собой лёгкий JavaScript-класс, предназначенный для загрузки больших файлов и изображений на веб-страницах. Он позволяет устанавливать различные параметры загрузки, предоставляет несколько обратных вызовов и может быть легко привязан к любому идентификатору (id).
Класс автоматически генерирует форму загрузки и позволяет настраивать такие параметры, как заголовки файлов, другие параметры и ограничения на размер загружаемых файлов. Поддерживается функция возобновления прерванной загрузки. Также доступны подробные инструкции по использованию.
Официальный сайт: http://fcup.lovefc.cn
Репозитории:
Пример использования пакета в NODE: https://gitee.com/lovefc/webpack.
Для начала работы с библиотекой можно скачать исходный код или использовать git для клонирования проекта. Обратите внимание, что в новой версии демо используется база данных SQLite, поэтому необходимо проверить наличие расширения SQLite в вашей среде PHP. Кроме того, каталог для загрузки должен иметь права на чтение и запись.
// Пример загрузки №2
let up = new fcup({
id: "upid", // Привязка к id
url: "server/php_db/upload.php", // Адрес URL
check_url: "server/php_db/check.php", // URL для проверки
type: "jpg,png,jpeg,gif", // Ограничение типов файлов (пустое значение означает отсутствие ограничений)
shard_size: "0.005", // Размер фрагмента загрузки (в мегабайтах), по умолчанию 1 мегабайт
min_size: '', // Минимальный размер файла (в мегабайтах)
max_size: "2", // Максимальный размер файла (в мегабайтах), максимум 200 мегабайт
// headers: {"version": "fcup-v2.0"}, // Дополнительные заголовки файлов (при использовании могут возникнуть проблемы с междоменными запросами)
// apped_data: {}, // Дополнительные данные для каждой загрузки
// Определение сообщений об ошибках
error_msg: {
1000: "Не найден идентификатор загрузки",
1001: "Тип файла не разрешен для загрузки",
1002: "Файл слишком мал для загрузки",
1003: "Размер файла превышает допустимый предел",
1004: "Запрос на загрузку превысил время ожидания"
},
// Функция обработки ошибок
error: (msg) => {
alert(msg);
},
// Инициализация событий
start: () => {
console.log('Загрузка готова к запуску');
Progress2(0);
},
// Ожидание загрузки
before_send: () => {
console.log('Ожидание запроса');
},
// Событие прогресса загрузки
progress: (num, other) => {
Progress2(num);
console.log(num);
console.log("Прогресс загрузки" + num);
console.log("Тип файла" + other.type);
console.log("Уже загружено" + other.current);
console.lib("Осталось загрузить" + other.surplus);
console.log("Использованное время" + other.usetime);
console.log("Предполагаемое время" + other.totaltime);
},
// Обратный вызов после успешной проверки URL, используется для определения существования файла, типа файла и текущего номера фрагмента
check_success: (res) => {
let data = res ? eval('(' + res + ')') : '';
let status = data.status;
let url = data.url;
let msg = data.message;
// Обработка ошибки
if (status == 1 ) {
alert(msg);
return false;
}
// Файл уже существует
if (status == 2) {
alert('Файл уже существует');
return false;
}
// Если параметр предоставлен, подготовка к возобновлению загрузки будет выполнена
if(data.file_index){
// Начало загрузки с указанного фрагмента (начинается с 1)
let file_index = data.file_index ? parseInt(data.file_index) : 1;
// Установка начального фрагмента для возобновленной загрузки
up.set_shard(file_index);
}
// Для успешного завершения загрузки необходимо вернуть true, иначе загрузка будет остановлена
return true;
},
// Успешная загрузка
success: (res) => {
let data = res ? eval('(' + res + ')') : '';
let url = data.url + "?" + Math.random();
let file_index = data.file_index ? parseInt(data.file_index) : 1;
if (data.status == 2) {
alert('Загрузка завершена');
}
// Для успешной загрузки необходимо вернуть true
return true;
}
});
Параметр | Тип | Значение по умолчанию | Описание |
---|---|---|---|
id | string | Нет | Идентификатор DOM |
url | string | Нет | URL для загрузки на сервер |
check_url | string | Нет | URL для проверки |
type | string | Пустой | Ограничения на типы файлов (разделенные запятыми без учета регистра) |
shard_size | int, float | 2 | Размер фрагмента загрузки в мегабайтах (не рекомендуется устанавливать слишком маленькое значение из-за расчета MD5) |
min_size | int, float | Нет | Минимальный размер файла в мегабайтах |
max_size | int, float | Нет | Максимальный размер файла в мегабайтах |
headers | object | Нет | Дополнительные заголовки для каждого файла (могут вызвать проблемы при междоменных запросах) |
apped_data | object | Нет | Дополнительные данные для каждой загрузки |
timeout | int | 3000 | Время ожидания AJAX |
error_msg | object | Объект | Сообщения об ошибках |
start | function | Функция | Событие после инициализации класса |
before_send | function | Функция | Ожидание события перед загрузкой |
progress | function | Функция | Прогресс загрузки |
error | function | Функция | Обработка внутренних ошибок |
check_success | function | Функция | Проверка успешности загрузки, включая определение существования файла, его типа и номера фрагмента |
success | function | Функция | Успешное завершение загрузки (циклическое событие) |
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )