sateler / yii2-document
Yii2 model for storing documents
Installs: 550
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 3
Forks: 1
Open Issues: 0
Type:yii2-extension
Requires
- ramsey/uuid: ^4.0
- yiisoft/yii2: ^2.0.16
Suggests
- creocoder/yii2-flysystem: ^0.9.4
This package is auto-updated.
Last update: 2024-10-13 06:40:15 UTC
README
Yii2-document stores documents in your local database or any filesystem supported by Flysystem.
Installation
The preferred way to install this extension is through composer.
Either run
php composer.phar require --prefer-dist sateler/yii2-document "^1.1"
or add
"sateler/yii2-document": "^1.1"
to the require section of your composer.json
file.
Once the extension is installed, add namespace to console config:
return [ 'controllerMap' => [ 'migrate' => [ 'class' => 'yii\console\controllers\MigrateController', 'migrationNamespaces' => [ 'sateler\document\migrations', ], ], ], ];
And controller to web config:
return [ 'controllerMap' => [ 'documents' => [ 'class' => 'sateler\document\controllers\DocumentController', ] ], ];
Configuration
'documentManager' => [ 'class' => \sateler\document\DocumentManager::class, // Define default filesystem, of none given sql storage is used 'defaultFilesystemId' => 'awsS3', 'filesystems' => [ // A flysystem filesystem config 'awsS3' => [ 'class' => AwsS3Filesystem::class, 'bucket' => 'bucket-name', 'region' => 'us-east-1', 'prefix' => 'path', 'key' => 'key', 'secret' => 'secret', ], ], ],
Usage
Once installed, you can now use sateler\document\Document
in your relations, and redirect to
['documents/view', 'id' => $docId]
to view or download.
Create a document and save it:
$doc = new Document(); $doc->name = 'filename'; $doc->mime_type = 'mime/type'; $doc->contents = file_get_contents('/path/to/file'); $doc->save();
Get a document and send it:
$doc = Document::findOne($id) $res = Yii::$app->response; $res->format = Response::FORMAT_RAW; $res->setDownloadHeaders($doc->name, $doc->mime_type, true); $res->data = $doc->contents; $res->send();