laravel使用FastDFS上传图片
github上的一个client 用PHP Socket 实现的 FastDFS 客户端 (不需要安装php dfs扩展就可以直接使用哦) FastDFS-Client
github链接地址 https://github.com/qpwoeiru96/PHP-FastDFS-Client
项目clone的本地改下配置就可以使用。不过这里我们演示一下在laravel项目里面如果使用。
1,在项目app的目录下面新建一个文件夹Packages
,然后把client的文件都放在该目录下面。
2,修改各个文件的命名空间
将Base.php
,Tracker.php
,Storage.php
,FastDFS.php
,Exception.php
命名空间都改成
namespace App\Packages;
3,使用
3.1 在上传文件的控制器里引用这几个类
use App\Packages\Base;
use App\Packages\Storage as DfsStorage;
use App\Packages\Tracker;
use App\Packages\Exception;
3.2 具体实现代码
# DFS 配置
$tracker_addr = env("DFS_IP");
$tracker_port = env("DFS_PORT");
$group_name = env("DFS_GROUP_NAME");
# 实例化
$tracker = new Tracker($tracker_addr, $tracker_port);
$storage_info = $tracker->applyStorage(env("DFS_GROUP_NAME"));
$storage = new DfsStorage($storage_info['storage_addr'], $storage_info['storage_port']);
# 上传文件
$res = $storage->uploadFile($storage_info['storage_index'], $flieName);
3.3 修改配置 在项目下的.env
添加配置
DFS_IP=192.168.152.128 #dfs主机的ip
DFS_PORT=22122 #端口
DFS_GROUP_NAME=group1 #group名称