Yii рдкрд░ рдХрдИ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рдбрд╛рдЙрдирд▓реЛрдб рдХреА рдЧрдИ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рддрдВрддреНрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрд╛ред Yii рдЗрди рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рднреА рддрдВрддреНрд░ рдирд╣реАрдВ рд╣реИред рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рд╡рд╛рдИ рдореЗрдВ рдбрд╛рдЙрдирд▓реЛрдб рдХреА рдЧрдИ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдХреЗрдВрджреНрд░реАрдХреГрдд рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╡рд┐рдЪрд╛рд░ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред
рдХрд╛рд░реНрдп рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реИред рд╣рдореЗрдВ рдлрд╛рдЗрд▓ рдФрд░ рдЪрд┐рддреНрд░реЛрдВ рдХреЛ рд╕рд░реНрд╡рд░ рдкрд░ рдЕрдкрд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП (рдЖрд╡рд╢реНрдпрдХ рдЬрд╛рдВрдЪ рд╕рд╣рд┐рдд) рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рддрдВрддреНрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЪрд┐рддреНрд░реЛрдВ рдХреЗ рд▓рд┐рдП рдердВрдмрдиреЗрд▓ рдмрдирд╛рдиреЗ рдФрд░ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдЯреИрдЧ рдФрд░ рд▓рд┐рдВрдХред
рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдореЗрдВ рдХреБрдЫ рдирд╣реАрдВ рдорд┐рд▓рд╛ред рдЕрд░реНрде рдореЗрдВ рдирд┐рдХрдЯрддрдо
рдЕрдкрд▓реЛрдб рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдХрдИ рдЖрд╡рд╢реНрдпрдХ рдХрд╛рд░реНрдп рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЦреБрдж рд▓рд┐рдЦрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рд▓реЗрдЦ рдХреЗ рдкреНрд░рдХрд╛рд╢рди рд╕реЗ рдареАрдХ рдкрд╣рд▓реЗ, рдореИрдВрдиреЗ рдЧрд▓рддреА рд╕реЗ рдПрдХ
рдиреБрд╕реНрдЦрд╛ рджреЗрдЦрд╛ рдЬреЛ рдПрдХ рд╕рдорд╛рди рд╡рд┐рдЪрд╛рд░ рдХреЛ рджреЗрдЦрддрд╛ рдерд╛ред
рдХреЛрдб рдЙрджрд╛рд╣рд░рдг рдХреЗрд╡рд▓ рд╕рдВрджрд░реНрдн рдХреЗ рд▓рд┐рдП рд╣реИрдВ, рдореИрдВрдиреЗ рдЙрдиреНрд╣реЗрдВ рдПрдХ рдХрд╛рд░реНрдпрд╢реАрд▓ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реЗ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдореИрдВ рдХреБрдЫ рднреНрд░рдорд┐рдд рдХрд░ рд╕рдХрддрд╛ рдерд╛ред рдпрджрд┐ рдЖрдкрдХреЛ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХреЛрдб рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рд▓реЗрдЦ рдХреЗ рдЕрдВрдд рдореЗрдВ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рд┐рдВрдХ рд╣реИред рддреЛ рдЖрдЧреЗ рдмрдврд╝реЛ!
рдкрд╣рд▓рд╛ рдкреБрдирд░рд╛рд╡реГрддрд┐ рд╣рдо рдорд╛рдирдХ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рдкреВрд░рдХ рд╣реИрдВред
Yii рдХреНрдпрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ? рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ,
CUploadedFile рд╡рд░реНрдЧ, рдЬреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХреА рдЧрдИ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЖрдкрдХреЛ рдЗрд╕реЗ рд╕рд░реНрд╡рд░ рдкрд░ рд╕рд╣реЗрдЬрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рджреВрд╕рд░реЗ,
CFileValidator рд╕рддреНрдпрд╛рдкрдирдХрд░реНрддрд╛, рдЬреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХреА рдЧрдИ рдлрд╝рд╛рдЗрд▓ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реИред рдпрд╣рд╛рдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐
рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рджрд╕реНрддрд╛рд╡реЗрдЬ рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХреИрд╕реЗ рдХрд░рддреЗ рд╣реИрдВ:
рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рдХрдИ рдиреБрдХрд╕рд╛рди рд╣реИрдВ:
- рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлреНрд░реЗрдорд╡рд░реНрдХ рдореЗрдВ рдПрдХ рд╕рдорд░реНрдкрд┐рдд рдлрд╝реЛрд▓реНрдбрд░ рдирд╣реАрдВ рд╣реИ
- рдлрд╛рдЗрд▓ рдЕрдкрд▓реЛрдб рдХреЛ рд╣рд░ рдмрд╛рд░ рдХрдВрдЯреНрд░реЛрд▓рд░ рдореЗрдВ рдмрддрд╛рдирд╛ рд╣реЛрдЧрд╛
- рдЗрдВрдЧрд┐рдд рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЛ
actionUpdate()
рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╣рд░ рдХреЙрд▓ рдХреЗ рд╕рд╛рде рдПрдХ рдлрд╝рд╛рдЗрд▓ рд▓реЛрдб рдХреА рдЬрд╛рдПред рдФрд░ рд╕рд╛рдзрд╛рд░рдг рдЧреБрдгреЛрдВ рдХреЗ рд╕рд╛рде рдлрд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реЛрдЧрд╛ - рдореЙрдбрд▓ рдмрдирд╛рддреЗ рд╕рдордп рд▓реЛрдб рдХрд░реЗрдВ рдФрд░ рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рдЗрд╕реЗ рдмрджрд▓рддреЗ рд╕рдордп рдкреБрдирд░рд╛рд░рдВрдн рдХрд░реЗрдВред - рдлрд╝рд╛рдЗрд▓ рдХреЗ рдмрд╛рдж рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рд╕рд┐рдлрд╛рд░рд┐рд╢ рдирд╣реАрдВ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореЙрдбрд▓ рдкреНрд░реЙрдкрд░реНрдЯреА рдореЗрдВ
path/to/localFile
рдХреЛ рд╕реНрдЯреЛрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдмреЗрд╢рдХ, рдореИрдВ рдХреЗрд╡рд▓ рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдЗрди рдХрдорд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдФрд░ рдпрд╣рд╛рдБ рдореИрдВ рдкреЗрд╢ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдБред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рд╕рд╣реЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЬрдЧрд╣ рддрдп рдХрд░рддреЗ рд╣реИрдВред рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛
.../protected/data/files
рднрдВрдбрд╛рд░рдг
.../protected/data/files
рд▓рд┐рдП рд╕рдмрд╕реЗ рдЙрдкрдпреБрдХреНрдд рд╣реИред рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛, рдХрд╛рдо рдХреЗ рджреМрд░рд╛рди рдмрдирд╛рдИ рдЧрдИ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП, рдПрдХ рдлрд╝реЛрд▓реНрдбрд░ рд╣реИ
.../protected/runtime
, рд▓реЗрдХрд┐рди рдЕрд░реНрде рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ
data
рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдЗрди рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдЙрдкрдпреБрдХреНрдд рд╣реИред рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдмреЗрддрд░рддреАрдм рдврдВрдЧ рд╕реЗ рдЙрддреНрдкрдиреНрди рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ (
uniqid()
) рдФрд░ рдореЙрдбрд▓ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд
$modMyModel->id_image
, рдЕрдЧрд▓реЗ рдкреИрд░рд╛рдЧреНрд░рд╛рдл рдореЗрдВ рдореИрдВ рдЖрдкрдХреЛ рдмрддрд╛рдКрдВрдЧрд╛ рдХрд┐ рдХреИрд╕реЗред рд╕рдЪ рд╣реИ, рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдореЗрдВ рдПрдХ рдиреБрдХрд╕рд╛рди рд╣реИ -
data
рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕реЗ рдкрд╣реБрдВрдЪ рдХреЗ рд▓рд┐рдП рдмрдВрдж рд╣реИред рдЗрд╕рд╕реЗ рдХреИрд╕реЗ рдирд┐рдкрдЯреЗрдВ - рдереЛрдбрд╝реА рджреЗрд░ рдмрд╛рджред рдЖрдЧреЗ рджреЗрдЦрддреЗ рд╣реБрдП, рдореЗрд░рд╛ рд╕реБрдЭрд╛рд╡ рд╣реИ рдХрд┐ рдЖрдк рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ
readfile()
рдорд╛рдзреНрдпрдо рд╕реЗ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ, рдФрд░
assets
рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдЪрд┐рддреНрд░ (рдЕрдзрд┐рдХ рд╕рдЯреАрдХ, рдЪрд┐рддреНрд░реЛрдВ рдХреЗ рдердВрдмрдиреЗрд▓) рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░реЗрдВред
рд╣рдордиреЗ рдлрд╝реЛрд▓реНрдбрд░ рдФрд░ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдордХрд░рдг рд╣рд▓ рдХрд┐рдпрд╛ред рдЕрдм рд╣рдо рд╕рддреНрдпрд╛рдкрди рдФрд░ рд▓реЛрдбрд┐рдВрдЧ рд╕реЗ рдирд┐рдкрдЯреЗрдВрдЧреЗред рд╢реБрд░реБрдЖрдд рдХрд░рддреЗ рд╣реИрдВ рдлреЙрд░реНрдо рд╕реЗред рдРрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ:
<?php echo $modMyModel->id_image ?> <?php echo CHtml::activeFileField($modMyModel, 'id_image_file'); ?>
рдЗрд╕рд▓рд┐рдП рд╣рдо рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдлрд╛рдЗрд▓ рдЕрдкрд▓реЛрдб рд╣реИ рдпрд╛ рдирд╣реАрдВред рдФрд░ рдлрд╝рд╛рдЗрд▓ рдХреЛ
id_image_file
рдирд╛рдо рд╕реЗ рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
echo $modMyModel->id_image
рдмрдЬрд╛рдп
echo $modMyModel->id_image
рдЖрдк рдПрдХ рдлрд╝рд╛рдЗрд▓ рдпрд╛ рдердВрдмрдиреЗрд▓ рдЫрд╡рд┐ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рд┐рдВрдХ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЕрдм рдорд╛рдиреНрдпрддрд╛ рд╣реИред рд╡рд┐рдЪрд╛рд░ рдпрд╣ рд╣реИ: рд╕рддреНрдпрд╛рдкрдирдХрд░реНрддрд╛ рдХреЛ рдЬрд╛рдВрдЪ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП рдХрд┐ рдХреНрдпрд╛
$_FILES
рдбрд╛рдЙрдирд▓реЛрдб рдХреА рдЧрдИ рдлрд╝рд╛рдЗрд▓ рд╣реИ рдЬрд┐рд╕реЗ
id_image_file
рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рд╣рд╛рдВ, рддреЛ рдПрдХ
CUploadedFile
рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдВ рдФрд░ рдЗрд╕реЗ
$modMyModel->id_image
ред рдлрд┐рд░ рдорд╛рдирдХ рддрд░реАрдХреЗ рд╕реЗ
$modMyModel->id_image
рдорд╛рдиреНрдп рдХрд░реЗрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП,
DFileValidator
рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛
DFileValidator
рд╕рддреНрдпрд╛рдкрдирдХрд░реНрддрд╛
CFileValidator
ред рдФрд░ рддреБрд░рдВрдд рдПрдХ рдФрд░ -
DImageValidator
,
DImageValidator
рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛, рдЬрд┐рд╕рдореЗрдВ рд╣рдо рдЪрд┐рддреНрд░реЛрдВ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдлрд╝рд╛рдЗрд▓ рдкреНрд░рдХрд╛рд░реЛрдВ рдХрд╛ рд╕рдВрдХреЗрдд рджреЗрддреЗ рд╣реИрдВред
рдФрд░ рдЕрдВрдд рдореЗрдВ, рдлрд╝рд╛рдЗрд▓ рдХреЛ рд▓реЛрдб рдХрд░рдирд╛ рдФрд░ рдореЙрдбрд▓ рдХреЛ рд╕рд╣реЗрдЬрдирд╛ред рд╕рддреНрдпрд╛рдкрди рдХреЗ рдмрд╛рдж, рдбрд╛рдЙрдирд▓реЛрдб рдХреА рдЧрдИ рдлрд╝рд╛рдЗрд▓
$modMyModel->id_image
, рдФрд░
$modMyModel->id_image
рдХреЗ рд░реВрдк рдореЗрдВ
CUploadedFile
ред рд▓реЛрдбрд┐рдВрдЧ рдХреЛ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдкреНрд░реЙрдкрд░реНрдЯреА рд╕реЗ рдмрдВрдзреЗ рд╣реЛрдиреЗ рд╕реЗ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдпрд╣ рдЬрд╛рдВрдЪрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдореЙрдбрд▓ рдХреЛ рд╕рд╣реЗрдЬрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЗрд╕рдХреА рдХреЛрдИ рднреА рдЧреБрдг
CUploadedFile
рдХреНрд▓рд╛рд╕ рдХреА рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рд╣реИрдВ, рдФрд░ рдпрджрд┐ рд╡реЗ рд╣реИрдВ, рддреЛ рдЙрдиреНрд╣реЗрдВ рд▓реЛрдб рдХрд░реЗрдВ рдФрд░ рдПрдбреНрд░реЗрд╕ рд╕реЗрд╡ рдХрд░реЗрдВред рдЕрдм рдореЙрдбрд▓ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛:
class MyModel extends DActiveRecord { public $id_image; public function rules(){ return array( array('id_image', 'DImageValidator'), ); } public function beforeSave() { foreach ($this->attributes as $key => $attribute) if ($attribute instanceof CUploadedFile) { $strSource = uniqid(); if ($attribute->saveAs(Yii::getPathOfAlias('application.data.files') . '/' . $strSource)) $this->$key = $strSource; } return parent::beforeSave(); } }
рдЫрд╡рд┐ рд╕рдВрдкрддреНрддрд┐ рдХреЛ рдЖрдЗрдбреЗрдВрдЯрд┐_ рдкреНрд░реЙрдкрд░реНрдЯреА рджреНрд╡рд╛рд░рд╛ рд╕рдЪреЗрдд рд░реВрдк рд╕реЗ рдмрджрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЖрдЧреЗ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реЛрдЧрд╛ рдХрд┐ рдХреНрдпреЛрдВред
рдЙрдк-рдпреЛрдЧ рдХрд╛ рд╕рд╛рд░рд╛рдВрд╢ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛
- рд╕рднреА рдлрд╛рдЗрд▓реЗрдВ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╕рд╣реЗрдЬреА рдЬрд╛рддреА рд╣реИрдВ
.../protected/data/files
рд░реИрдВрдбрдо рдирд╛рдореЛрдВ рдХреЗ рд╕рд╛рде .../protected/data/files
ред - рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╕рд╣реЗрдЬреЗ рдЬрд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдлрд╝рд╛рдЗрд▓ рдЕрдкрд▓реЛрдбрд┐рдВрдЧ рдореЙрдбрд▓ рдореЗрдВ рдХреА рдЬрд╛рддреА рд╣реИред
- рдПрдХ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рд╕рдВрдкрддреНрддрд┐ рдХреЛ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЪрд╛рд╣рд┐рдП:
rules()
рдореЙрдбрд▓ рдореЗрдВ, рдЗрд╕ рд╕рдВрдкрддреНрддрд┐ рдХреЗ DFileValidator
рд╕рддреНрдпрд╛рдкрдирдХрд░реНрддрд╛ рдХреЛ рдЕрд╕рд╛рдЗрди рдХрд░реЗрдВред- рдкреНрд░рдкрддреНрд░ рдореЗрдВ,
'_file'
рдХреЛ '_file'
рдЗрд╕ рд╕рдВрдкрддреНрддрд┐ рдХреЗ рд▓рд┐рдП рдЗрдирдкреБрдЯ рдХрд╛ рдирд╛рдо рдмрджрд▓реЗрдВред
actionCreate()
рдФрд░ actionUpdate()
рддрд░реАрдХреЛрдВ рдХреЛ рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд рдЫреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рджреВрд╕рд░рд╛ рдкреБрдирд░рд╛рд╡реГрддрд┐ред рд╣рдо рдбреЗрдЯрд╛рдмреЗрд╕ рдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╣реИрдВред
рд╣рдордиреЗ рдкрддрд╛ рд▓рдЧрд╛рдпрд╛ рдХрд┐ рдлрд╝рд╛рдЗрд▓ рдХреИрд╕реЗ рдЕрдкрд▓реЛрдб рдХрд░реЗрдВред рд▓реЗрдХрд┐рди рдЬрдмрдХрд┐ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЙрд╕рд╕реЗ рдХреИрд╕реЗ рд╕рдВрдкрд░реНрдХ рдХрд┐рдпрд╛ рдЬрд╛рдПред
img
рдЯреИрдЧ рдХреЗ
src
рдкреИрд░рд╛рдореАрдЯрд░ рдореЗрдВ рдХреНрдпрд╛ рд▓рд┐рдЦрдирд╛ рд╣реИ? рдбрд╛рдЙрдирд▓реЛрдб рдХреЗ рд▓рд┐рдП рдлрд╛рдЗрд▓ рдХреИрд╕реЗ рджреЗрдВ? рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╛рдИрдЖрдИрдЖрдИ рдореЙрдбрд▓ рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реЛрдЧрд╛ред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрджрд┐ рдХреЛрдИ рдореЙрдбрд▓ рдкреНрд░рддреНрдпреЗрдХ рдбрд╛рдЙрдирд▓реЛрдб рдХреА рдЧрдИ рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рд╣реИ, рддреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рд╕рд╣рд┐рдд рд╕рднреА рдирд┐рдореНрди-рд╕реНрддрд░реАрдп рд╕рдВрдЪрд╛рд▓рди рдХреЛ рд╕реМрдВрдкрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдФрд░ рд╕рдВрдкрддреНрддрд┐ рдореЗрдВ
$modMyModel->id_image
рдЗрд╕ рдореЙрдбрд▓ рдХреА рдкреНрд░рд╛рдердорд┐рдХ рдХреБрдВрдЬреА рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП (рдЕрдм рдЗрд╕ рд╕рдВрдкрддреНрддрд┐ рдХреЗ рдирд╛рдо рдХрд╛ рд╕рд╛рд░ рд╕реНрдкрд╖реНрдЯ рд╣реИ)ред рддрдм
$modMyModel
рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд░рд┐рд╢реНрддреЛрдВ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ рдФрд░ рд▓рд┐рдЦрдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕ рддрд░рд╣:
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореЙрдбрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рдореВрд▓ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо (рдЬреЛ рдмрдЪрдд рдХрд░рддреЗ рд╕рдордп рдЦреЛ рдЬрд╛рддрд╛ рд╣реИ) рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХрд╛ рдореБрджреНрджрд╛ рд╕реНрд╡рдпрдВ рд╣рд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
рдЪрд▓реЛ рдЪрд▓рддреЗ рд╣реИрдВред
рдлрд╝реАрд▓реНрдб
id, source, name
рд╕рд╛рде рдПрдХ
tbl_files
рддрд╛рд▓рд┐рдХрд╛ рдмрдирд╛рдПрдВред рдЗрд╕ рддрд╛рд▓рд┐рдХрд╛ рд╕реЗ рдЬреБрдбрд╝реЗ
DFile
рдореЙрдбрд▓ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВред рд╣рдо рдЗрд╕рдореЗрдВ рд╕реНрдереИрддрд┐рдХ
upload
рд╡рд┐рдзрд┐ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ:
class DFile extends DActiveRecord { public $uploadPath;
рдФрд░ рддреБрд░рдВрдд рдПрдХ рдЦрд╛рд▓реА
DImage extends DFile
рдмрдирд╛рдПрдБ
DImage extends DFile
ред рд╣рдореЗрдВ рдмрд╛рдж рдореЗрдВ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред
рдЕрдм рдЕрдкрдиреЗ рдореЙрдбрд▓ рдХреЛ рдереЛрдбрд╝рд╛ рдмрджрд▓реЗрдВред рдЪрд┐рддреНрд░ рдХреЗ рд╕рд╛рде рд╡рд╛рджрд╛ рдХрд┐рдП рдЧрдП рдХрдиреЗрдХреНрд╢рди рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ рдФрд░ рдкрд╣рд▓реЗ рд╡рд╛рд▓реЗ рдХреЛ
beforeSave()
рд╡рд┐рдзрд┐ рдХреЛ
beforeSave()
:
class MyModel extends DActiveRecord { public $id_image; public function rules(){ return array( array('id_image', 'DImageValidator', 'allowEmpty' => true), ); } public function relations() { return array( 'image' => array(self::BELONGS_TO, 'DImage', 'id_image'), ); } public function beforeSave() { foreach ($this->attributes as $key => $attribute) if ($attribute instanceof CUploadedFile) { $modFile = DFile::upload($attribute);
рдореЙрдбрд▓ рдХреЗ
$modMyModel
рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ, рдЖрдк
$modMyModel->image
рдорд╛рдзреНрдпрдо рд╕реЗ рдлрд╝рд╛рдЗрд▓ рддрдХ рдкрд╣реБрдБрдЪ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рдХрд╛ рд▓рд╛рдн рдХреИрд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ - рдЗрд╕ рдкрд░ рдкрдврд╝реЗрдВред
рддреАрд╕рд░рд╛ рдкреБрдирд░рд╛рд╡реГрддрд┐ред рдЕрдкрд▓реЛрдб рдХреА рдЧрдИ рдлрд╝рд╛рдЗрд▓реЛрдВ рддрдХ рдкрд╣реБрдВрдЪред
рдЗрд╕ рдХреНрд╖рдг рддрдХ, рд╣рдордиреЗ рд▓рдЧрднрдЧ рдлрд╝рд╛рдЗрд▓реЛрдВ рдФрд░ рдЪрд┐рддреНрд░реЛрдВ рдХреЛ рд╕рд╛рдЭрд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЙрдиреНрд╣реЗрдВ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдирд╛ рд╕рдорд╛рди рд╣реИред рдПрдХрдорд╛рддреНрд░ рдЕрдВрддрд░ рдкреНрд░реА-рдмреВрдЯ рдЪреЗрдХ рд╣реИред рд▓реЗрдХрд┐рди
DFileValidator
рдФрд░
DImageValidator
рд╕рддреНрдпрд╛рдкрдирдХрд░реНрддрд╛
DFileValidator
рд╕рд╛рде рдареАрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд╣рд╛рдБ рдЖрдк рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдирд┐рдпрдореЛрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд╡рд┐рдкрд░реАрдд, рдбрд╛рдЙрдирд▓реЛрдб рдХреА рдЧрдИ рдлрд╝рд╛рдЗрд▓реЛрдВ рдФрд░ рдЪрд┐рддреНрд░реЛрдВ рддрдХ рдкрд╣реБрдВрдЪ рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╕реЗ рдХреА рдЬрд╛рддреА рд╣реИред рдлрд╝рд╛рдЗрд▓реЗрдВ рд▓реЛрдб рдХреА рдЬрд╛рддреА рд╣реИрдВ рддрд╛рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдмрд╛рдж рдореЗрдВ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ, рдФрд░ рдЪрд┐рддреНрд░ - рдЙрдиреНрд╣реЗрдВ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдПред рдлрд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред
рдлрд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВ
рдореИрдВ рджреЛрд╣рд░рд╛рддрд╛ рд╣реВрдВ, рдЙрдиреНрд╣реЗрдВ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╛рдЗрд▓реЗрдВ рдбрд╛рдЙрдирд▓реЛрдб рдХреА рдЬрд╛рддреА рд╣реИрдВред рдЗрд╕рдХреЗ рд▓рд┐рдП рдЕрдХреНрд╕рд░ рдПрдХреНрд╕реЗрд╕ рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдХреЗ рд╕рддреНрдпрд╛рдкрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░, рджреЛ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рддреН, рдПрдХ рдбрд╛рдЙрдирд▓реЛрдб рд▓рд┐рдВрдХ рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдлрд╝рд╛рдЗрд▓ рдЬрд╛рд░реА рдХрд░рдирд╛ред
рд▓рд┐рдВрдХ рдкреАрдврд╝реА
DFile
рдореЗрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред рдХреБрдЫ рдЗрд╕ рддрд░рд╣:
class DFile extends DActiveRecord { public function downloadLink($htmlOptions = array()) { return CHtml::link($this->name, array('/files/file/download', 'id' => $this->id), $htmlOptions); } }
рд▓рд┐рдВрдХ
FileController
рдирд┐рдпрдВрддреНрд░рдХ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИред рдЗрд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ:
class FileController extends DcController { public function actionDownload($id) { $modFile = $this->loadModel($id); header("Content-Type: application/force-download"); header("Content-Type: application/octet-stream"); header("Content-Type: application/download"); header("Content-Disposition: attachment; filename=" . $modFile->name); header("Content-Transfer-Encoding: binary "); readfile($modFile->uploadPath . '/' . $modFile->source); } public function loadModel($id) { $modFile = DFile::model()->findByPk($id); if($modFile === null) throw new CHttpException(404,'The requested page does not exist.'); return $modFile; } }
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣рд╛рдВ рд╕рдм рдХреБрдЫ рд╕реНрдкрд╖реНрдЯ рд╣реИред
actionDownload()
рд╡рд┐рдзрд┐ рдХреЛрдИ рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдВрдЪ рдирд╣реАрдВ рдХрд░рддреА рд╣реИ, рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рддреЛ рдЙрдиреНрд╣реЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдореЙрдбрд▓ рдореЗрдВ рдЕрдм, рдЗрд╕реА рд╕рдВрдмрдВрдз рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реБрдП, рдЖрдк
$modMyModel->file->downloadLink()
рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВред рдмреЗрд╢рдХ, рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдлрд╛рдЗрд▓реЛрдВ рдХреЗ рд╕реАрдзреЗ рд▓рд┐рдВрдХ рдЬрд╛рд░реА рдХрд░рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрдо рдЙрддреНрдкрд╛рджрдХ рд╣реЛрдЧрд╛ред рдпрджрд┐ рдкреНрд░рджрд░реНрд╢рди рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ, рддреЛ рдЖрдк рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕реБрд░рдХреНрд╖рд┐рдд
data
рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдХрд┐рд╕реА рдЕрдиреНрдп (рдЦреБрд▓реА) рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ, рдФрд░ рд╕реАрдзреЗ рд▓рд┐рдВрдХ рдЬрд╛рд░реА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЪрд┐рддреНрд░реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВ
рдЪрд┐рддреНрд░реЛрдВ рдХреЗ рд╕рд╛рде, рд╕реНрдерд┐рддрд┐ рдереЛрдбрд╝реА рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реИред рдЪрд┐рддреНрд░реЛрдВ рдХреЗ рд▓рд┐рдП рдердВрдмрдиреЗрд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЪрд┐рддреНрд░реЛрдВ рдХреЗ рд╕рд╛рде, рд╣рдо рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЧрддрд┐рд╢реАрд▓ рд▓рд┐рдВрдХ рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░рдиреЗ рдХрд╛ рдЬреЛрдЦрд┐рдо рдирд╣реАрдВ рдЙрдард╛ рд╕рдХрддреЗ рд╣реИрдВред рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, Yii рдПрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╕рдВрд╕рд╛рдзрди рдкреНрд░рдХрд╛рд╢рди рддрдВрддреНрд░ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣рдорд╛рд░реЗ рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╡рд┐рдЪрд╛рд░ рдпрд╣ рд╣реИ: рд╣рдо рдЪрд┐рддреНрд░ рдХреЗ рд▓рд┐рдВрдХ рдмрдирд╛рддреЗ рд╕рдордп рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдердВрдмрдиреЗрд▓ рдмрдирд╛рдПрдВрдЧреЗ рдФрд░ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░реЗрдВрдЧреЗред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдХреБрдЫ рдкрд░реЗрд╢рд╛рдирд┐рдпрд╛рдБ рд╣реИрдВред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдпрджрд┐ рдЖрдкрдХреЛ рд╕реНрд░реЛрдд рдЫрд╡рд┐ рддрдХ рдкрд╣реБрдВрдЪ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдЗрд╕реЗ
assets
рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рднреА рдХреЙрдкреА рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рджреВрд╕рд░реЗ, рдорд╛рдирдХ Yii рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рдХрд╛рд╢рди рдХреЛ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рдХрд╛рд╢рд┐рдд рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП, Yii рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ рдлрд╝реЛрд▓реНрдбрд░ рдмрдирд╛рдПрдЧрд╛, рдЬреЛ рдХрд┐ рдХреНрд░реВрд░ рдмрд▓ рд╣реЛрдЧрд╛ред рд╣рд╛рдБ, рдФрд░ рдорд╛рдирдХ рдЙрдкрдХрд░рдг рдХреЗ рд╕рд╛рде
assets
рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдЕрднреА рдердВрдмрдиреЗрд▓ рдмрдирд╛рдирд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдкрд╣рд▓реА рд╕рдорд╕реНрдпрд╛ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреА рд╣реИ рдпрджрд┐ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЪрд┐рддреНрд░ рдбрд╛рдЙрдирд▓реЛрдб рдирд╣реАрдВ рдХрд┐рдП рдЧрдП рд╣реИрдВ рдФрд░ рдореВрд▓ рдЪрд┐рддреНрд░ рддрдХ рдкрд╣реБрдВрдЪ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдореВрд▓ рдЪрд┐рддреНрд░реЛрдВ рдХреЛ рдЙрдЪреНрдЪ рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЙрдиреНрд╣реЗрдВ рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рддрдВрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рд╕реНрдХреНрд░реАрди рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдердВрдмрдиреЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдРрд╕реА рд╕рдорд╕реНрдпрд╛ рд╣реЛрддреА рд╣реИ, рддреЛ, рд╡рд┐рдХрд▓реНрдк рдХреЗ рд░реВрдк рдореЗрдВ, рдЖрдк рд╕реНрд░реЛрдд рдЫрд╡рд┐ рдХреЛ
assets
рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдХреЙрдкреА рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдПрдХ рд▓рд┐рдВрдХ рдмрдирд╛рдПрдВ (Yii рдореЗрдВ рдорд╛рдирдХ рдкреНрд░рдХрд╛рд╢рди рддрдВрддреНрд░ рд▓рд┐рдВрдХ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд╕рд╛рде рдкреНрд░рдХрд╛рд╢рди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ)ред
рджреВрд╕рд░реА рд╕рдорд╕реНрдпрд╛ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд╕реНрд╡рдпрдВ рд╣реА рдкреНрд░рдХрд╛рд╢рди рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЗрддрдирд╛ рдирд╣реАрдВ ...
рддреЛ рдЪрд▓рд┐рдП рдЪрд▓рддреЗ рд╣реИрдВред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА
DFile
рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓реА
DImage
рдХреНрд▓рд╛рд╕ рд╣реИред рд╣рдо рдердВрдмрдиреЗрд▓ рдФрд░ рдкреНрд░рдХрд╛рд╢рди рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реИрдВ:
class DImage extends DFile { public $assetsPath;
рдердВрдмрдиреЗрд▓ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ
assets
рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдПрдХ
files
рд╕рдмрдлрд╝реЛрд▓реНрдбрд░ рдмрдирд╛рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реВрдВред рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐
assets
рдлрд╝реЛрд▓реНрдбрд░ рдХреЛ рд╕рдордп-рд╕рдордп рдкрд░ рд╕рд╛рдл рдХрд░рдиреЗ рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХреА рдЬрд╛рддреА рд╣реИ, рд╣рд░ рдмрд╛рд░
assets/files
рдлрд╝реЛрд▓реНрдбрд░ рдХреЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдХреА рдЬрд╛рдВрдЪ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рдФрд░ рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рддреЛ рдмрдирд╛рдПрдВред рдердВрдмрдиреЗрд▓ рдирд╛рдо рдЫрд╡рд┐ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреЗ рд╕рдорд╛рди рд╣реИ, рдердВрдмрдиреЗрд▓ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдкреВрд░рдХ рд╣реИред рдПрдХ рдЫрд╡рд┐ рдХреЛ рдкреНрд░рдХрд╛рд╢рд┐рдд рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдпрджрд┐ рд╕рднреА рдердВрдмрдиреЗрд▓ рдЬрдЧрд╣ рдореЗрдВ рд╣реИрдВред рд╕реНрд░реЛрдд рдФрд░ рдкреНрд░рдХрд╛рд╢рд┐рдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рддрд╛рд░реАрдЦ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдбрд╛рдЙрдирд▓реЛрдб рдХреА рдЧрдИ рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
publish()
рдлрд╝рдВрдХреНрд╢рди рдкреНрд░рдХрд╛рд╢рд┐рдд рдЫрд╡рд┐ рдХрд╛ URL рджреЗрддрд╛ рд╣реИ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдПрдХ рдердВрдмрдиреЗрд▓ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдП рдмрд┐рдирд╛), рдЬреЛ рд╡рд╛рдИрдЖрдИрдЖрдИ рдореЗрдВ рдкреНрд░рдХрд╛рд╢рди рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рд╡рд┐рдЪрд╛рд░ рдХрд╛ рдЦрдВрдбрди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
рдФрд░ рдЕрдВрдд рдореЗрдВ, рдЕрдкрд▓реЛрдб рдХреА рдЧрдИ рдЫрд╡рд┐ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред рд╣рдо
image()
рд╕рд╛рде
DImage
рд╡рд░реНрдЧ рдХреЛ
DImage
image()
рд╡рд┐рдзрд┐:
public function image($strThumb = 'min', $htmlOptions = array()) { return CHtml::image($this->publish() . '_' . $strThumb, $this->name, $htmlOptions); }
рдЕрдм, рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рд╕рд╛рджреГрд╢реНрдп рджреНрд╡рд╛рд░рд╛, рдЖрдк рдореЙрдбрд▓ рдореЗрдВ
$modMyModel->image->image()
рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВред рд╡реИрд╕реЗ, рдЕрдЧрд░ рдердВрдмрдиреЗрд▓ рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдЕрдЪрд╛рдирдХ рдмрджрд▓рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рдпрд╛ рдПрдХ рдирдпрд╛ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИ (рдореЗрд░реЗ рд▓рд┐рдП рдПрдХ рдмрд╛рд░ рдХреБрдЫ рд╣реБрдЖ), рдФрд░ рд╕рднреА рдлрд╛рдЗрд▓реЗрдВ рдкрд╣рд▓реЗ рд╣реА рдбрд╛рдЙрдирд▓реЛрдб рд╣реЛ рдЪреБрдХреА рд╣реИрдВ, рддреЛ рдпрд╣ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ рдЖрдХрд╛рд░ рдмрджрд▓рдиреЗ рдФрд░ рд╕рдВрдкрддреНрддрд┐ рдлрд╝реЛрд▓реНрдбрд░ рдХреЛ рд╕рд╛рдл рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдЧрд╛ред
рдЫреВ рдордВрддрд░
рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЪрд┐рддреНрд░ рдЕрдкрд▓реЛрдб рдХрд┐рдП рдЧрдП рд╣реИрдВ, рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдП рдЧрдП рд╣реИрдВред рдлрд╝рд╛рдЗрд▓реЗрдВ рдЕрдкрд▓реЛрдб рдФрд░ рдбрд╛рдЙрдирд▓реЛрдб рдХреА рдЬрд╛рддреА рд╣реИрдВред рдпрд╣ рдХреЛрдб рдХреЛ рдереЛрдбрд╝рд╛ рдХрдВрдШреА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░рд╣рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, MySodel рд╡рд░реНрдЧ рд╕реЗ DActiveRecord рд╡рд░реНрдЧ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд╕реЗ рд╕реЗрд╡ () рд╡рд┐рдзрд┐ рдХреЛ рд╣рдЯрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╕реЗ, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд╕рднреА рдореЙрдбрд▓ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓реЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдлрд╝рд╛рдЗрд▓реЛрдВ рдФрд░ рдЪрд┐рддреНрд░реЛрдВ рдХреЗ рд▓рд┐рдП рдЗрдирдкреБрдЯ рдХрд╛ рдкреНрд░рджрд░реНрд╢рди
DActiveForm extends CActiveForm
рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ
DActiveForm extends CActiveForm
ред рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХрд╛ рднрдВрдбрд╛рд░рдг
files
рдореЙрдбреНрдпреВрд▓ рдХреЛ рд╕реМрдВрдкрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдЦреИрд░, рдФрд░ рдПрдХ рдЕрдЪреНрдЫреА рдкрд░рдВрдкрд░рд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдПрдХ
рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рд┐рдВрдХред рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рдХрд╛рд░рдг рдЕрд▓рдЧ-рдЕрд▓рдЧ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЕрдкрд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рд╕рдорд╕реНрдпрд╛рдЧреНрд░рд╕реНрдд рд╣реЛ рдЧрдпрд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдкреВрд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдкреЛрд╕реНрдЯ рдХрд░рддрд╛ рд╣реВрдВред рдбреЗрдЯрд╛рдмреЗрд╕ рдбрдВрдк рд╕рдВрд░рдХреНрд╖рд┐рдд / рдбреЗрдЯрд╛ / рдбрдВрдкред рдПрд╕рд╕реАрдПрд▓ рдореЗрдВ рдирд┐рд╣рд┐рдд рд╣реИред рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╕реЗ - рд╡рд╛рдИ рдХреЛ рдкрде рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ, рдбреЗрдЯрд╛рдмреЗрд╕ рддрдХ рдкрд╣реБрдВрдЪ рджрд░реНрдЬ рдХрд░реЗрдВред рдмреЗрд╕ рдХрдХреНрд╖рд╛рдПрдВ рдФрд░ рд╕рддреНрдпрд╛рдкрдирдХрд░реНрддрд╛ рд╕рдВрд░рдХреНрд╖рд┐рдд / рдШрдЯрдХ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╣реИрдВ, рдлрд╛рдЗрд▓реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдм рдХреБрдЫ рдлрд╛рдЗрд▓реЛрдВ рдХреЗ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рд╣реИред
рдирд┐рд╖реНрдХрд░реНрд╖
рддреЛ рдпрд╣рд╛рдБ рд╣рдо рдЙрддреНрдкрд╛рджрди рд╣реИ:
- рдХреЗрдВрджреНрд░реАрдХреГрдд рдлрд╝рд╛рдЗрд▓ рдЕрдкрд▓реЛрдб рдФрд░ рднрдВрдбрд╛рд░рдг рдкреНрд░рдмрдВрдзрди
- рдореЙрдбрд▓ рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рдЧреБрдг рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдЕрдиреБрдХреВрд▓ рдЗрдВрдЯрд░рдлреЗрд╕
- рдлрд╝рд╛рдЗрд▓реЗрдВ рдФрд░ IMG рдЯреИрдЧ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рд▓рд┐рдВрдХ рдкреАрдврд╝реА
рд╡рд┐рдЪрд╛рд░ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд▓рдЧрднрдЧ рд╕рднреА WYCIWYG рд╕рдВрдкрд╛рджрдХ рдлрд╝рд╛рдЗрд▓реЛрдВ рдФрд░ рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдбрд╛рдЙрдирд▓реЛрдб рдкрддрд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдПрдХ рдбрд╛рдЙрдирд▓реЛрдб рд╣реИрдВрдбрд▓рд░
FileController
рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдлрд┐рд░ рдердВрдмрдиреЗрд▓ рдХреИрд╕реЗ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░реЗрдВ?
рдпрд╛ рдлрд┐рд░, рдЖрдк рд▓реЗрдЦреЛрдВ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╕реБрдЭрд╛рд╡реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ
рдХрд░рдХреЗ рд╕рд░реНрд╡рд░ рдкрд░ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдЪрд┐рддреНрд░ рдЕрдкрд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
ред рднрд╛рдЧ рдПрдХ рдФрд░
рд╕реБрд░рдХреНрд╖рд┐рдд рдЕрдкрд▓реЛрдбрд┐рдВрдЧ рдЫрд╡рд┐рдпрд╛рдБ рд╕рд░реНрд╡рд░ рдкрд░ред рднрд╛рдЧ рджреЛ рдЖрдк рдКрдкрд░ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд
рдЕрдкрд▓реЛрдб рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЛ рдкреВрд░рдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдк рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдПрдХ рд╢рдмреНрдж рдореЗрдВ, рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд╕рдорд╛рдзрд╛рди рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ рдЬрд▓реНрджрдмрд╛рдЬреА рд╣реЛрдЧреАред рд▓реЗрдХрд┐рди рдпрджрд┐ рд╡рд░реНрдгрд┐рдд рд╡рд┐рдЪрд╛рд░ рдЙрдкрдпреЛрдЧреА рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдореИрдВ рдХрд╛рдо рдкреВрд░рд╛ рдХрд░рдиреЗ рдФрд░ рд╕рдВрдмрдВрдзрд┐рдд рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реВрдВред рдЬреЛ рднреА рдкрдврд╝реЗ рдЙрд╕рдХрд╛ рдзрдиреНрдпрд╡рд╛рдж!