burgess1109 / file_package
上传或下载文件
Requires
- php: >=5.5.9
- laravel/framework: 5.2.*
Requires (Dev)
- fzaninotto/faker: ~1.4
- mockery/mockery: 0.9.*
- phpunit/phpunit: ~4.0
- symfony/css-selector: 2.8.*|3.0.*
- symfony/dom-crawler: 2.8.*|3.0.*
This package is not auto-updated.
Last update: 2020-01-28 21:05:52 UTC
README
原因:Laravel 已经有强大的Storage处理文件上传/下载等作业,且支持ftp传输。但因项目需求,客户只开放使用sftp,故写了此package扩展了sftp功能
安装方式
-
切换到项目目录下,执行 composer require burgess1109/file_package:*
-
在 config/app.php 'providers'内加入 FilePackages\FilePackagesServiceProvider::class,
务必确认server已安装ssh2套件 (SSH安装方式)
环境参数(.env)
FILE_CONNECT:连接方式(sftp or ftp or local)
使用ftp or sftp 需加入以下参数
FILE_HOST:文件服务器IP
FILE_PORT : 文件服务器端口
FILE_USERNAME:文件服务器账号
FILE_PASSWORD:文件服务器密码
FILE_ROOT:上传目录
filesystems(config/filesystems.php )
1.修正default参数,让其获取环境参数
'default' => env('FILE_SERVER', 'local'),
2.'disks'内增加ftp disk,让Storage支持FTP
'ftp' => [
'driver' => 'ftp',
'host' => env('FILE_HOST', 'localhost'),
'username' => env('FILE_USERNAME', '預設帳號'),
'password' => env('FILE_PASSWORD', '預設密碼'),
// Optional FTP Settings...
'port' => 21,
'root' => env('FILE_ROOT', '上傳目錄'),
],
测试页面
提供测试页面 YourIP/file
使用方式
可参考 packages/FilePackages/src/FileController.php
- 获取文件列表
$directory='路径';
$FilePackages = new FilePackages($directory);
$files = $FilePackages->getList();
- 获取文件
$directory='<路径>';
$FilePackages = new FilePackages($directory);
$FilePackages->return_type='download';//返回类型, 直接下载:download 图片:jpg 视频:video
$FilePackages->file_name=<实际文件名>;
$FilePackages->show_name=<文件显示名称>;
return $FilePackages->getFile();
- 上传文件
$directory='<路径>';
$FilePackages = new FilePackages($directory);
$FilePackages->request_file=<文件上传request>;
$result=$FilePackages->postFile();
- 删除文件
$directory='路径';
$FilePackages = new FilePackages($directory);
$FilePackages->file_name='<删除的实际文件名>';
$result=$FilePackages->deleteFile();
- 删除文件夹
$directory='路径';
$FilePackages = new FilePackages($directory);
$FilePackages->floder='<文件夹名称>';
$result = $FilePackages->deleteFloder();