PHPackages                             sequelone/upload-laravel - 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. sequelone/upload-laravel

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

sequelone/upload-laravel
========================

Upload large files for Laravel

v1.0.1(5y ago)111GPL-2.0PHPPHP &gt;=5.5.9

Since Mar 2Pushed 5y ago1 watchersCompare

[ Source](https://github.com/SequelONE/upload-laravel)[ Packagist](https://packagist.org/packages/sequelone/upload-laravel)[ RSS](/packages/sequelone-upload-laravel/feed)WikiDiscussions main Synced 5d ago

READMEChangelog (2)Dependencies (1)Versions (3)Used By (0)

Upload-Laravel
==============

[](#upload-laravel)

Загрузить **большие файлы** с пакетом расширения Laravel теперь очень просто.

Особенности
===========

[](#особенности)

- процентный индикатор выполнения
- ограничения типа файла \[x\]
- ограничение размера файла \[x\]
- многоязычный
- конфигурация группировки \[x\]
- пользовательское промежуточное по
- пользовательская маршрутизация

0 Переключитесь в корневой каталог вашего проекта laravel в терминале и выполните `composer require sequelone/upload-laravel ~2.0`

1 (Для Laravel 5.5+ пропустите) в `config/app.php` в `providers` добавьте строку в массив`Upload\UploadServiceProvider::class,`

2 Выполните `php artisan upload:publish` для публикации некоторых файлов и каталогов.

3 Доступ в браузере `https://site.com/upload`. Вы можете перейти на страницу примера.

*Совет: чтобы изменить соответствующие параметры конфигурации, пожалуйста, отредактируйте файл `config/upload.php`*

**Основное использование**

Загрузка файла: обратитесь к разделу комментариев к образцам файлов и введите соответствующие файлы и код на странице, где вам нужно загрузить большие файлы.Пользовательское промежуточное программное обеспечение можно использовать для дополнительной фильтрации загрузок файлов и для дальнейшей обработки загруженных файлов с помощью событий завершения загрузки.

Конфигурация группировки:

Автоматически создайте соответствующий каталог `php artisan upload:groups`

Пользовательское промежуточное по: обратитесь к разделу промежуточного по документации Laravel, чтобы создать свое промежуточное по и в " Ядре.зарегистрируйтесь в php`, заполните имя промежуточного программного обеспечения, которое вы зарегистрировали в соответствующем разделе конфигурационного файла, например ' \['middleware1', 'middleware2'\]"

Загрузить завершения события: делится на до загрузки и после загрузки событий см. В фреймворк Laravel документ системных событий каталоге, зарегистрировать события и слушатели в'EventServiceProvider`, выполнения'php ремесленника событие:создание Альто создавать события и слушатели, заполнить соответствующую часть конфигурационного файла с полным именем класса в случае, если вы зарегистрировались, например, из приложения\\события\\OrderShipped'.

\*\* Добавлена функция второго прохода (требуется поддержка Redis и браузера）\*\*

Установите Redis и запустите сервер.Установите пакет predis 'composer require predis/predis'.Убедитесь, что на странице загрузки представлен spark-md5.минута.файл js.

- Совет: в Redis поддерживается второй список пропусков, соответствующий фактическому файлу ресурсов, изменения, вызванные добавлениями и удалениями фактического файла ресурсов,должны быть синхронизированы со вторым списком пропусков,в противном случае он будет производить грязные данные, пакет расширения содержит новую часть, при удалении файла ресурсов пользователю необходимо вручную вызвать соответствующий метод для удаления файла ресурсов.\* ``в PHP \\Upload\\Util:: deleteResource ($savedPath); / / удалить соответствующий файл ресурса \\Upload\\Util:: deleteRedisSavedPath ($savedPath); / / удалить соответствующую вторую биографию redis

```

** Распределенное развертывание (требуется междоменная поддержка Redis и домена）**

Распределенное развертывание разделив сервер приложений и сервер хранения, можно уменьшить нагрузку на сервер приложений, увеличить количество одновременных подключений к приложению, уменьшить сцепление, снизить риск единой точки отказа, повысить эффективность доступа, после включения распределенного развертывания сервер приложений не будет обрабатывать никаких запросов на загрузку и доступ.

Установите Redis и запустите сервер.Установите пакет predis 'composer require predis/predis'.Убедитесь, что форма страницы загрузки содержит ' {{storage_host_field ()}}`.

Конфигурация сервера приложений：
В`config/upload.php настройте параметр'distributed_deployment 'в ' enable' на 'true', 'role' на 'web', 'storage_host' на доменное имя сервера хранения`http://storage.your-domain.com".
В файле`. env` измените элементы конфигурации 'APP_NAME' и 'APP_KEY' на соответствующие конкретные значения, соответствующие конфигурации сервера хранения. SESSION_DOMAIN=.your-domain.com измените конфигурацию SESSION_DRIVER=redis', чтобы поделиться сеансом.

Конфигурация сервера хранения：
В config/upload.php`настройка'distributed_deployment товаров в'enable с'установить правду", "роль с'набор для'storage`,`middleware_cors с'имя зарегистрировано в междоменной промежуточного UploadCORS класс в ,`allow_origin установлен как доменное имя сервера приложений`http://www.your-domain.com'.
В файле`. env` измените элементы конфигурации 'APP_NAME' и 'APP_KEY' на соответствующие конкретные значения, соответствующие конфигурации сервера приложений. SESSION_DOMAIN=.your-domain.com измените конфигурацию SESSION_DRIVER=redis', чтобы поделиться сеансом.

** Простая в использовании команда ремесленника**

'php artisan upload: groups` перечисляет все группы и автоматически создает соответствующий каталог
'php artisan upload: build` перестраивает второй список пропусков файлов ресурсов в Redis
'php artisan upload: clean 2` очищает недопустимые временные файлы 2 дня назад
` php artisan upload:publish ' vendor:publish упрощенная команда, которая переопределяет публикацию некоторых каталогов и файлов

# Предложения по оптимизации
* (Рекомендуется) установите режим автоматической очистки недопустимых временных файлов каждый день.
Из - за неожиданного прекращения процесса загрузки, такого как принудительное закрытие страницы или браузера во время передачи, приведет к тому, что сгенерированная часть файла станет недействительными файлами, занимающими много места для хранения, мы можем использовать функцию планирования задач Laravel для периодической их очистки.
Запустите команду 'crontab-e' в Linux, чтобы убедиться, что эта строка кода включена в файл：
``в PHP
* * * * * php /абсолютный путь к корневому каталогу проекта/artisan schedule: run 1> > /dev / null 2>&1

```

В ' app/Console / Kernel.добавьте следующий код к методу 'schedule' в php`： ``в PHP $schedule-&gt;command('upload:clean 2')-&gt;daily();

```
* (Рекомендуется) повысить эффективность чтения и записи заголовочных файлов.
Изменив файловую систему заголовочного файла с локального жесткого диска на Redis, можно повысить эффективность чтения и записи заголовочных файлов.
В конфигурации/загрузки.php 'изменяет соответствующее значение элемента 'header_storage_disk' на 'redis'.
В ' config/filesystems.добавить'redis'configuration к'item'disks РНР`：
``в PHP
"диски" => [
...
'в Redis' => [
'драйвер' => 'Redis с',
'disable_asserts'=>верно,
],
...
]

```

- Установите автоматическую перестройку второго списка пропусков в Redis каждый день. Неправильная обработка и некоторые крайние случаи могут привести к появлению грязных данных во втором списке передачи, что повлияет на точность второй передаточной функции, реконструкция второго списка передачи может устранить грязные данные, восстановить синхронизацию с фактическими файлами ресурсов. Запустите команду 'crontab-e' в Linux, чтобы убедиться, что эта строка кода включена в файл： ``в PHP
- - - - - php /абсолютный путь к корневому каталогу проекта/artisan schedule: run 1&gt; &gt; /dev / null 2&gt;&amp;1

```
В ' app/Console / Kernel.добавьте следующий код к методу 'schedule' в php`：
``в PHP
$schedule->command('upload:build')->daily();

```

- Улучшите скорость чтения и записи фрагментированных временных файлов (эффективно только для PHP). Использование файловой системы Linux tmpfs,для достижения загруженного блока временных файлов в память с целью быстрого чтения и записи, путем изменения пространства во времени, повышения эффективности чтения и записи, позволит\*\*\*\* \* \* часть дополнительной памяти (около 1 размера блока). Будет php.значение временного каталога загрузки ' upload\_tmp\_dir'item в ini установлено в`"/dev/shm"для перезапуска службы fpm или apache.
- Улучшите скорость чтения и записи временных файлов блоков (эффективно для системного временного каталога). Использование файловой системы Linux tmpfs,для достижения загруженного блока временных файлов в память с целью быстрого чтения и записи, путем изменения пространства во времени, повышения эффективности чтения и записи, позволит\*\*\*\* \* \* часть дополнительной памяти (около 1 размера блока). Выполните следующую команду：

`mkdir /dev/shm/tmp`
`chmod 1777 /dev/shm/tmp`
`mount --bind /dev/shm/tmp /tmp`

Совместимость
=============

[](#совместимость)

  IE Edge Firefox Chrome Safari  Версия 10+ 12+ 3.6+ 6+ 5.1+   Версия 10+ 12+ 3.6+ 6+ 6+ Безопасность
============

[](#безопасность)

Upload использует форму whitelist+blacklist для фильтрации расширения файла перед загрузкой, а затем проверяет тип Mime-типа файла после загрузки.Белый список непосредственно ограничивает расширение файла сохранения,черный список по умолчанию shield common executable file extension,чтобы предотвратить загрузку вредоносных файлов,столбец белого списка безопасности не должен оставаться пустым.

Хотя сделать много работы по обеспечению безопасности, но вредоносную загрузку файлов предотвратить невозможно, рекомендуется правильно установить разрешения каталога загрузки,чтобы убедиться, что соответствующая программа не выполняет разрешения на файл ресурса.

Список изменений
================

[](#список-изменений)

**2021-01-04 v2.0.8**Исправлена ошибка, из-за которой при выполнении route:cache могла появиться ошибка Добавлено предупреждение об ошибке типа mime Оптимизация слияния js-файлов

Changelog [CHANGELOG.md](https://github.com/sequelone/Upload-Laravel/blob/master/CHANGELOG.md)

###  Health Score

23

—

LowBetter than 27% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity7

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity49

Maturing project, gaining track record

 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 ~0 days

Total

2

Last Release

1900d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/7eae8f6dc70ef8e7e86f9d76f7a2877fbcea11778deb1551f7eb39d7720d7752?d=identicon)[sequelone](/maintainers/sequelone)

---

Top Contributors

[![SequelONE](https://avatars.githubusercontent.com/u/14241611?v=4)](https://github.com/SequelONE "SequelONE (3 commits)")

---

Tags

laraveluploadlarge

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/sequelone-upload-laravel/health.svg)

```
[![Health](https://phpackages.com/badges/sequelone-upload-laravel/health.svg)](https://phpackages.com/packages/sequelone-upload-laravel)
```

###  Alternatives

[peinhu/aetherupload-laravel

Upload large files for Laravel 上传 大文件 laravel包

91884.7k3](/packages/peinhu-aetherupload-laravel)[czim/laravel-paperclip

Laravel Eloquent file attachment solution

80802.1k6](/packages/czim-laravel-paperclip)[itskodinger/midia

Simple Media manager for your Laravel project

1415.8k](/packages/itskodinger-midia)

PHPackages © 2026

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