PHPackages                             axguowen/think-ftpclient - 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. [Utility &amp; Helpers](/categories/utility)
4. /
5. axguowen/think-ftpclient

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

axguowen/think-ftpclient
========================

Simple FTP Client For ThinkPHP

118PHP

Since Apr 1Pushed 1y ago1 watchersCompare

[ Source](https://github.com/axguowen/think-ftpclient)[ Packagist](https://packagist.org/packages/axguowen/think-ftpclient)[ RSS](/packages/axguowen-think-ftpclient/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

ThinkPHP FTP 客户端管理器
===================

[](#thinkphp-ftp-客户端管理器)

一个简单的 ThinkPHP FTP 客户端连接管理工具

特性
--

[](#特性)

- 支持断线重连
- 支持单例模式
- 支持动态切换连接
- 支持设置根目录

安装
--

[](#安装)

```
composer require axguowen/think-ftpclient

```

使用
--

[](#使用)

首先配置config目录下的ftpclient.php配置文件，然后可以按照下面的用法使用。

### 简单使用

[](#简单使用)

```
use \think\facade\FtpClient;
// 传送指定内容到文件
$putObjectResult = FtpClient::putObject('/test/myfile.txt', 'file content');
// 成功
if(!is_null($putObjectResult[0])){
    echo '上传成功';
}else{
    echo $putObjectResult[1]->getMessage();
}
```

### 切换连接其它主机

[](#切换连接其它主机)

```
use \think\facade\FtpClient;
// 连接其它服务器
$ftpClientOther = FtpClient::connect('other');
// 传送指定内容到文件
$putObjectResult = $ftpClientOther->putObject('/test/myfile.txt', 'file content');
// 成功
if(!is_null($putObjectResult[0])){
    echo '上传成功';
}else{
    echo $putObjectResult[1]->getMessage();
}
```

### 动态传入连接的主机参数

[](#动态传入连接的主机参数)

```
use \think\facade\FtpClient;
// 动态连接
$ftpClient = FtpClient::connect([
    // 主机
    'host' => 'xx.xx.xx.xx',
    // 端口
    'port' => 21,
    // 用户名
    'username' => 'username',
    // 密码
    'password' => 'password',
]);
// 传送指定内容到文件
$putObjectResult = $ftpClient->putObject('/test/myfile.txt', 'file content');
// 成功
if(!is_null($putObjectResult[0])){
    echo '上传成功';
}else{
    echo $putObjectResult[1]->getMessage();
}
```

### 其它方法

[](#其它方法)

```
use \think\facade\FtpClient;
// 传送指定内容到指定文件
$putObjectResult = FtpClient::putObject('/test/myfile.txt', 'file content');
// 上传本地文件到指定文件
$putFileResult = FtpClient::putFile('/test/myfile.txt', '/test/localfile.txt');
// 删除FTP上的文件
$deleteFileResult = FtpClient::deleteFile('/test/myfile.txt');
// 删除FTP上的目录
$deleteDirResult = FtpClient::deleteDir('/test/mydir');
// 重命名FTP上的文件
$renameFileResult = FtpClient::renameFile('/test/oldfilename.txt', '/test/newfilename.txt');
// 重命名FTP上的目录
$renameDirResult = FtpClient::renameDir('/test/olddirname', '/test/newdirname');
// 返回指定文件大小, 第二个参数传入单位, 支持b, kb, mb, gb;
$fileSizeResult = FtpClient::fileSize('/test/myfile.txt', 'kb');
// 返回文件最后修改时间, 第二个参数传入格式, 不传默认返回时间戳;
$fileUpdateTimeResult = FtpClient::fileUpdateTime('/test/myfile.txt', 'Y-m-d H:i:s');
// 返回指定目录下的文件列表
$fileListResult = FtpClient::fileList('/test/mydir');
```

###  Health Score

16

—

LowBetter than 5% of packages

Maintenance34

Infrequent updates — may be unmaintained

Popularity8

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity15

Early-stage or recently created project

 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.

### Community

Maintainers

![](https://www.gravatar.com/avatar/5bb2b3388238042a25cf42dc44e5ff84adc241510354abae9e91573556753205?d=identicon)[axguowen](/maintainers/axguowen)

---

Top Contributors

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

### Embed Badge

![Health badge](/badges/axguowen-think-ftpclient/health.svg)

```
[![Health](https://phpackages.com/badges/axguowen-think-ftpclient/health.svg)](https://phpackages.com/packages/axguowen-think-ftpclient)
```

###  Alternatives

[jiannei/laravel-enum

A simple and easy-to-use enumeration extension package to help you manage enumerations in your project more conveniently, supporting Laravel and Lumen

3933.4k5](/packages/jiannei-laravel-enum)[keyword-extractor/keyword-extractor

A package to extract keywords from text

118.7k](/packages/keyword-extractor-keyword-extractor)[christianbarkowsky/tabcontrol

Create tabs as content element. Extension for Contao Open Source CMS

109.9k](/packages/christianbarkowsky-tabcontrol)

PHPackages © 2026

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