PHP Class mdm\upload\UploadBehavior

Usage at [[\yii\base\Model::behaviors()]] add the following code ~~~ return [ ... [ 'class' => 'mdm\upload\UploadBehavior', 'uploadPath' => '@common/upload', // default to '@runtime/upload' 'attribute' => 'file', // attribute use to receive from FileField 'savedAttribute' => 'file_id', // attribute use to receive id of file ], ]; ~~~
Since: 1.0
Author: Misbahul D Munir ([email protected])
Inheritance: extends yii\base\Behavior
Show file Open project: mdmsoft/yii2-upload-file Class Usage Examples

Public Properties

Property Type Description
$attribute the attribute that will receive the uploaded file
$autoDelete when true then related file will be deleted on event 'beforeDelete'
$autoSave when true saveUploadedFile() will be called on event 'beforeSave'
$deleteOldFile boolean
$directoryLevel the level of sub-directories to store uploaded files. Defaults to 1. If the system has huge number of uploaded files (e.g. one million), you may use a bigger value (usually no bigger than 3). Using sub-directories is mainly to ensure the file system is not over burdened with a single directory having too many files.
$saveCallback Closure | string
$savedAttribute the attribute that will receive the file id
$uploadPath the directory to store uploaded files. You may use path alias here. If not set, it will use the "upload" subdirectory under the application runtime path.

Public Methods

Method Description
__get ( $name )
__set ( $name, $value )
beforeDelete ( ModelEvent $event ) Event handler for beforeDelete
beforeSave ( ModelEvent $event ) Event handler for beforeSave
canGetProperty ( $name, $checkVars = true )
canSetProperty ( $name, $checkVars = true )
events ( )
getSavedFile ( ) : FileModel Get saved file
init ( )
saveUploadedFile ( boolean $deleteOldFile = null ) : boolean | null Save uploaded file into [[$uploadPath]]

Method Details

__get() public method

public __get ( $name )

__set() public method

public __set ( $name, $value )

beforeDelete() public method

Event handler for beforeDelete
public beforeDelete ( ModelEvent $event )
$event yii\base\ModelEvent

beforeSave() public method

Event handler for beforeSave
public beforeSave ( ModelEvent $event )
$event yii\base\ModelEvent

canGetProperty() public method

public canGetProperty ( $name, $checkVars = true )

canSetProperty() public method

public canSetProperty ( $name, $checkVars = true )

events() public method

public events ( )

getSavedFile() public method

Get saved file
public getSavedFile ( ) : FileModel
return FileModel

init() public method

public init ( )

saveUploadedFile() public method

Save uploaded file into [[$uploadPath]]
public saveUploadedFile ( boolean $deleteOldFile = null ) : boolean | null
$deleteOldFile boolean If true and file exists, file will be deleted.
return boolean | null if success return true, fault return false. Return null mean no uploaded file.

Property Details

$attribute public property

the attribute that will receive the uploaded file
public $attribute

$autoDelete public property

when true then related file will be deleted on event 'beforeDelete'
public $autoDelete

$autoSave public property

when true saveUploadedFile() will be called on event 'beforeSave'
public $autoSave

$deleteOldFile public property

public bool $deleteOldFile
return boolean

$directoryLevel public property

the level of sub-directories to store uploaded files. Defaults to 1. If the system has huge number of uploaded files (e.g. one million), you may use a bigger value (usually no bigger than 3). Using sub-directories is mainly to ensure the file system is not over burdened with a single directory having too many files.
public $directoryLevel

$saveCallback public property

public Closure|string $saveCallback
return Closure | string

$savedAttribute public property

the attribute that will receive the file id
public $savedAttribute

$uploadPath public property

the directory to store uploaded files. You may use path alias here. If not set, it will use the "upload" subdirectory under the application runtime path.
public $uploadPath