Рассмотрим реализацию на фрэймворке Laravel. Нам понадобятся библиотеки:
- Resumable.js — это библиотека JavaScript, обеспечивающая несколько одновременных, стабильных и возобновляемых загрузок через файловый API HTML5
- https://github.com/pionl/laravel-chunk-upload — библиотека для Laravel для загрузки файлов частями
- jQuery
Для начала скачиваем файл resumable.js из репозитория https://github.com/23/resumable.js/ и поместим его в наш проект /public/js/resumable.js/
Затем нам нужно установить библиотеку https://github.com/pionl/laravel-chunk-upload устанавливаем через composer
composer require pion/laravel-chunk-upload
Нет доступа к глобальному composer?
Когда все библиотеки установлены, переходим к созданию контроллера, отвечающего за загрузку.
Для начала в файл /routes/web.php добавим новые роуты
Route::get('/files-library', [App\Http\Controllers\FilesLibraryController::class, 'filesLibrary'])->name('files-library');
Route::post('files-library/upload', [App\Http\Controllers\UploaderController::class, 'upload'])->name('file-upload');
По пути /files-library — будет доступна страница для загрузки файлов, а files-library/upload — служит для самой загрузки
В папке /app/Http/Controllers создадим новый контроллер FilesLibraryController.php
// /app/Http/Controllers/FilesLibraryController.php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class FilesLibraryController extends Controller
{
public function filesLibrary(Request $request) {
return view('/files.library')
}
}
и тут же создадим контроллер загрузчика файлов UploaderController.php