ndoulgeridis / smb-bundle
Samba客户端用于Symfony3
0.2.0
2018-08-21 20:17 UTC
Requires
- php: >=5.3
- symfony/framework-bundle: ~3
This package is not auto-updated.
Last update: 2024-09-12 22:56:36 UTC
README
SMB-Bundle
PHP包装器,用于smbclient
和libsmbclient-php
- 为多个请求重用单个
smbclient
实例 - 不会泄露密码到进程列表
- 简单的SMB命令1对1映射
- 基于流的API,无需临时文件
- 支持通过
libsmbclient-php
直接使用libsmbclient
安装
-
在composer文件中将它添加为依赖
"require": { "ndoulgeridis/smb-bundle":"dev-master" }
-
添加到您的Kernel中
// application/ApplicationKernel.php public function registerBundles() { $bundles = array( new SMBBundle\SMBBundle() ); }
-
(可选)调整配置
# application/config/config.yml smb: host: localhost user: test password: test
示例
上传文件
<?php $fileToUpload = __FILE__; $server = $this->get('smb.server'); $share = $server->getShare('test'); $share->put($fileToUpload, 'example.txt');
下载文件
<?php $target = __DIR__ . '/target.txt'; $server = $this->get('smb.server'); $share = $server->getShare('test'); $share->get('example.txt', $target);
列出远程服务器上的共享
<?php $server = $this->get('smb.server'); $shares = $server->listShares(); foreach ($shares as $share) { echo $share->getName() . "\n"; }
列出文件夹内容
<?php $server = $this->get('smb.server'); $share = $server->getShare('test'); $content = $share->dir('test'); foreach ($content as $info) { echo $name->getName() . "\n"; echo "\tsize :" . $info->getSize() . "\n"; }
使用读取流
<?php $server = $this->get('smb.server'); $share = $server->getShare('test'); $fh = $share->read('test.txt'); echo fread($fh, 4086); fclose($fh);
使用写入流
<?php $server = $this->get('smb.server'); $share = $server->getShare('test'); $fh = $share->write('test.txt'); fwrite($fh, 'bar'); fclose($fh);
使用其他配置
<?php $server = $this->get('smb.server'); $server->setAuthParams('localhost', 'user0', 'user0'); $share = $server->getShare('test');
使用libsmbclient-php
<?php $fileToUpload = __FILE__; if (Server::NativeAvailable()) { $server = new NativeServer('localhost', 'test', 'test'); } else { echo 'libsmbclient-php not available, falling back to wrapping smbclient'; $server = $server = $this->get('smb.server');; } $share = $server->getShare('test'); $share->put($fileToUpload, 'example.txt');