PHP code example of yii2tech / file-storage
1. Go to this page and download the library: Download yii2tech/file-storage library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
yii2tech / file-storage example snippets
return [
'components' => [
'fileStorage' => [
'class' => 'yii2tech\filestorage\local\Storage',
'basePath' => '@webroot/files',
'baseUrl' => '@web/files',
'dirPermission' => 0775,
'filePermission' => 0755,
'buckets' => [
'tempFiles' => [
'baseSubPath' => 'temp',
'fileSubDirTemplate' => '{^name}/{^^name}',
],
'imageFiles' => [
'baseSubPath' => 'image',
'fileSubDirTemplate' => '{ext}/{^name}/{^^name}',
],
]
],
// ...
],
// ...
];
$bucket = Yii::$app->fileStorage->getBucket('tempFiles');
$bucket->saveFileContent('foo.txt', 'Foo content'); // create file with content
$bucket->deleteFile('foo.txt'); // deletes file from bucket
$bucket->copyFileIn('/path/to/source/file.txt', 'file.txt'); // copy file into the bucket
$bucket->copyFileOut('file.txt', '/path/to/destination/file.txt'); // copy file from the bucket
var_dump($bucket->fileExists('file.txt')); // outputs `true`
echo $bucket->getFileUrl('file.txt'); // outputs: 'http://domain.com/files/f/i/file.txt'
return [
'components' => [
'fileStorage' => [
'class' => 'yii2tech\filestorage\sftp\Storage',
'ssh' => [
'host' => 'file.server.com',
'username' => 'user',
'password' => 'some-password',
],
'basePath' => '/var/www/html/files',
'baseUrl' => 'http://file.server.com/files',
'buckets' => [
'temp',
'item',
]
],
// ...
],
// ...
];
return [
'components' => [
'fileStorage' => [
'class' => 'yii2tech\filestorage\local\Storage',
'basePath' => '@webroot/files',
'baseUrl' => '@web/files',
'buckets' => [
'temp',
'item',
]
],
// ...
],
// ...
];
return [
'components' => [
'fileStorage' => [
'class' => 'yii2tech\filestorage\hub\Storage',
'storages' => [
[
'class' => 'yii2tech\filestorage\sftp\Storage',
'ssh' => [
'host' => 'file.server.com',
'username' => 'user',
'password' => 'some-password',
],
'basePath' => '/var/www/html/files',
'baseUrl' => 'http://file.server.com/files',
'buckets' => [
'item',
]
],
[
'class' => 'yii2tech\filestorage\local\Storage',
'basePath' => '@webroot/files',
'baseUrl' => '@web/files',
'buckets' => [
'temp',
]
]
],
],
// ...
],
// ...
];
$bucket = Yii::$app->fileStorage->getBucket('tempFiles');
$fileUrl = $bucket->getFileUrl('image.jpg');
return [
'components' => [
'fileStorage' => [
'class' => 'yii2tech\filestorage\local\Storage',
'baseUrl' => ['/file/download'],
// ...
],
// ...
],
// ...
];
use yii\helpers\Url;
$bucket = Yii::$app->fileStorage->getBucket('images');
$fileUrl = $bucket->getFileUrl('logo.png');
$manualUrl = Url::to(['/file/download', 'bucket' => 'images', 'filename' => 'logo.png']);
var_dump($fileUrl === $manualUrl); // outputs `true`
class FileController extends \yii\web\Controller
{
public function actions()
{
return [
'download' => [
'class' => 'yii2tech\filestorage\DownloadAction',
],
];
}
}
$bucket = Yii::$app->fileStorage->getBucket('tempFiles');
$resource = $bucket->openFile('new_file.dat', 'w');
fwrite($resource, 'content part1');
fwrite($resource, 'content part2');
// ...
fclose($resource);
$resource = $bucket->openFile('existing_file.dat', 'r');
while (!feof($resource)) {
echo fread($resource, 1024);
}
fclose($resource);
return [
// ...
'components' => [
// ...
'log' => [
// ...
'targets' => [
[
'class' => 'yii\log\FileTarget',
'logFile' => '@runtime/logs/file-storage.log',
'categories' => ['yii2tech\filestorage\*'],
],
// ...
],
],
],
];
php composer.phar
json
"yii2tech/file-storage": "*"
php composer.phar
json
"aws/aws-sdk-php": "~2.0"
php composer.phar