说明
AetherUpload是提供超大文件上传的 laravel 扩展包,带百分比进度显示,支持断点续传,支持自定义中间件,基于 laravel 5 开发。

用法
-
在终端内切换到你的 laravel 项目根目录,执行
composer require peinhu/aetherupload-laravel dev-master -
在
config/app.php的providers数组中添加一行Peinhu\AetherUpload\AetherUploadServiceProvider::class, -
执行
php artisan vendor:publish来发布一些文件和目录 -
赋予上传目录相应权限,在项目根目录下,执行
chmod 755 storage/app/uploads -R -
在浏览器访问
http://域名 /aetherupload可到达示例页面
提示:更改相关配置选项请编辑config/aetherupload.php。
优化建议
- (推荐)设置每天自动清除无效文件。
由于上传流程存在意外终止的情况,如在传输过程中强行关闭页面或浏览器,将会导致已产生的临时文件成为无效文件,占据大量的存储空间,我们可以使用 Laravel 的任务调度功能来定期清除它们。
在 Linux 中运行crontab -e命令,确保文件中包含这行代码:
* * * * * php /项目根目录的绝对路径 /artisan schedule:run 1>> /dev/null 2>&1
在app/Console/Kernel.php中的schedule方法中添加以下代码:
$schedule->call(function () {
(new \Peinhu\AetherUpload\Uploader())->cleanUpDir();
})->daily();
- 提高临时文件读写速度。
利用 Linux 的 tmpfs 文件系统,来达到将临时文件放到内存中快速读写的目的。执行以下命令:
mkdir /dev/shm/tmp
chmod 1777 /dev/shm/tmp
mount --bind /dev/shm/tmp /tmp