laravel使用FastDFS上传图片

laravel使用FastDFS上传图片

Posted by MaxBear 3 years ago

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的文件都放在该目录下面。

将client代码放在项目里

2,修改各个文件的命名空间

Base.phpTracker.phpStorage.phpFastDFS.phpException.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名称

4. 最后看下效果

效果图1

效果图2