yii2-extension yii2-attachments
Extension for file uploading and attaching to the models
mazpaijo/yii2-attachments
Extension for file uploading and attaching to the models
- Thursday, July 12, 2018
- by mazpaijo
- Repository
- 1 Watchers
- 0 Stars
- 9 Installations
- PHP
- 0 Dependents
- 0 Suggesters
- 50 Forks
- 0 Open issues
- 5 Versions
- 50 % Grown
Yii2 attachments
, (*1)
Extension for file uploading and attaching to the models, (*2)
Demo
You can see the demo on the krajee website, (*3)
Installation
-
The preferred way to install this extension is through composer., (*4)
Either run, (*5)
php composer.phar require mazpaijo/yii2-attachments "~1.0.0"
or add, (*6)
"mazpaijo/yii2-attachments": "~1.0.0"
to the require section of your composer.json
file., (*7)
-
Add module to common/config/main.php
, (*8)
'modules' => [
...
'attachments' => [
'class' => mazpaijo\attachments\Module::className(),
'tempPath' => '@app/uploads/temp',
'storePath' => '@app/uploads/store',
'rules' => [ // Rules according to the FileValidator
'maxFiles' => 10, // Allow to upload maximum 3 files, default to 3
'mimeTypes' => 'image/png', // Only png images
'maxSize' => 1024 * 1024 // 1 MB
],
'tableName' => '{{%attachments}}' // Optional, default to 'attach_file'
]
...
]
-
Apply migrations, (*9)
'controllerMap' => [
...
'migrate' => [
'class' => 'yii\console\controllers\MigrateController',
'migrationNamespaces' => [
'mazpaijo\attachments\migrations',
],
],
...
],
php yii migrate/up
-
Attach behavior to your model (be sure that your model has "id" property), (*10)
public function behaviors()
{
return [
...
'fileBehavior' => [
'class' => \mazpaijo\attachments\behaviors\FileBehavior::className()
]
...
];
}
-
Make sure that you have added 'enctype' => 'multipart/form-data'
to the ActiveForm options, (*11)
-
Make sure that you specified maxFiles
in module rules and maxFileCount
on AttachmentsInput
to the number that you want, (*12)
Usage
-
In the form.php
of your model add file input, (*13)
<?= \mazpaijo\attachments\components\AttachmentsInput::widget([
'id' => 'file-input', // Optional
'model' => $model,
'options' => [ // Options of the Kartik's FileInput widget
'multiple' => true, // If you want to allow multiple upload, default to false
],
'pluginOptions' => [ // Plugin options of the Kartik's FileInput widget
'maxFileCount' => 10 // Client max files
]
]) ?>
-
Use widget to show all attachments of the model in the view.php
, (*14)
<?= \mazpaijo\attachments\components\AttachmentsTable::widget(['model' => $model]) ?>
-
(Deprecated) Add onclick action to your submit button that uploads all files before submitting form, (*15)
<?= Html::submitButton($model->isNewRecord ? 'Create' : 'Update', [
'class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary',
'onclick' => "$('#file-input').fileinput('upload');"
]) ?>
-
You can get all attached files by calling $model->files
, for example:, (*16)
foreach ($model->files as $file) {
echo $file->path;
}
Change log
-
Dec 7, 2016 - Migration namespace coming with Yii 2.0.10. Release 1.0.0-beta.3.
-
Apr 19, 2016 - Refactoring and testing. Ajax removing. Release 1.0.0-beta.2.
-
Aug 17, 2015 - Support for prefix on table - you can specify the table name before migrating
-
Jul 9, 2015 - Fixed automatic submitting form
-
Jun 19, 2015 - Fixed uploading only files without submitting whole form and submitting form with ignoring upload errors
-
May 1, 2015 - Fixed uploading when connection is slow or uploading time is long. Now
onclick
event on submit button is deprecated
-
Apr 16, 2015 - Allow users to have a custom behavior class inheriting from FileBehavior.
-
Apr 4, 2015 - Now all temp uploaded files will be deleted on every new form opened.
-
Mar 16, 2015 - Fix: error in generating initial preview. Add: Getting path of the attached file by calling
$file->path
.
-
Mar 5, 2015 - Fix: restrictions for the number of maximum uploaded files.
-
Mar 4, 2015 - Added restrictions for number of maximum uploaded files.
-
Mar 3, 2015 - Fix of the file-input widget id.
-
Feb 13, 2015 - Added restrictions to files (see point 1 in the Usage section), now use
AttachmentsInput
widget on the form view instead of FileInput
-
Feb 11, 2015 - Added preview of uploaded but not saved files and
tableOptions
property for widget
-
Feb 2, 2015 - Fix: all attached files will be deleted with the model.
-
Feb 1, 2015 - AJAX or basic upload.
-
Jan 30, 2015 - Several previews of images and other files, fix of required packages.
-
Jan 29, 2015 - First version with basic uploading and previews.