UploadFileBehavior for Yii2 ¶
UploadFileBehavior is a Yii2 behavior designed to streamline the process of uploading files and/or images. It manages the processing and storage of files associated with an ActiveRecord model.
Features ¶
- File uploading for ActiveRecord models.
- Customizable file saving steps.
- Thumbnail generation.
- Option to rename uploaded files.
- Ability to delete files when associated records are deleted.
- Automatic cleanup of directories during updates.
Installation ¶
The preferred way to install this extension is through composer.
composer require "exocet/yii2-upload-file-behavior"
Setup and Configuration ¶
Include new behavior:
`php use exocet\yii2UploadFileBehavior\UploadFileBehavior;`Add the upload file attribute to your model:
`php public $upload_file;`Add safety rules for your image path or similar:
`php [['image_path'], 'safe'],`Attach the behavior to your model:
`php public function behaviors() {return [ 'uploadFileBehavior' => [ 'class' => UploadFileBehavior::className(), 'nameOfAttributeStorage' => 'image_path', //... other configurations ], ];}
`
Configuration Options ¶
Here's a quick run-through of the configuration options:
modelAttributeForFile: (string) The model's attribute to receive the file from the form. Defaults to'upload_file'.modelAttributeForStorage: (string) The model's attribute to store the file path or reference. Defaults to'images'.newFileName: (bool|string) A new filename to save the uploaded file as. Defaults tofalse(meaning it won't rename).steps: (array) Configurations detailing where and how to save the uploaded file. This can include thumbnail generation, different save paths, etc.thumbnailPrefix: (string) Prefix for generated thumbnails. Defaults to'thumb-'.originalPrefix: (string) Prefix to use when saving a copy of the original image. Defaults to'original-'.scenarios: (array) Scenarios under which this behavior will be triggered. Defaults to['default'].deleteImageWithRecord: (bool) Whether or not to delete the file when the associated record is deleted. Defaults tofalse.cleanDirWithUpdate: (bool) Whether or not to clean the upload directory when updating files. Defaults tofalse.
For more in-depth examples and how to set up the steps configuration, refer to the example given in the code comments.
Contribution ¶
Feel free to contribute to this project by opening issues, pull requests, or providing feedback. Your contributions are welcome!
Designed with :heart: for Yii2 developers.
If you have any questions, please ask in the forum instead.
Signup or Login in order to comment.