Я хочу загрузить файлы и заменить и так далее. Когда я использую это в моем файле просмотра:
echo $form->field($model, 'image')->fileInput();
все работает нормально — изображение загружено, а старое удалено.
Но не тогда, когда я хочу иметь больше контроля:
echo $form->field($model, 'image')->widget(FileInput::className(), [
'pluginOptions' => [
'options'=>[
'accept'=>'image/*',
'multiple'=>true
],
'allowedFileExtensions'=>['jpg','gif','jpeg', 'png'],
'initialPreview'=>[
Html::img($model->getImageUrl(), ['class'=>'file-preview-image', 'alt'=>$title, 'title'=>$title]),
],
'showCaption' => false,
'showRemove' => false,
'showUpload' => false,
'browseClass' => 'btn btn-grey',
'browseIcon' => '<i class="fa fa-folder-open" style="font-weight: 600; line-height: 1.3em;"></i> ',
'browseLabel' => 'Profilbild'
],
])->label(false)
Последняя версия не работает.
Что я делаю не так в своей активной форме?
Update1: добавление других файлов
Это контроллер
$model = $this->findModel($user_id, $mail_pre);
$oldFile = $model->getImageFile();
$oldAvatar = $model->avatar;
$oldFileName = $model->filename;
[...]
$image = $model->uploadImage();
if ($image === false) {
$model->avatar = $oldAvatar;
$model->filename = $oldFileName;
[...]
if ($image !== false && unlink($oldFile)) {
$path = $model->getImageFile();
$image->saveAs($path);
return $this->redirect([
[...]
И это в ActiveRecord:
public function uploadImage() {
$image = UploadedFile::getInstance($this, 'image');
if (empty($image)) {
return false;
}
[...]
Вот правила в записи:
[['avatar', 'filename', 'image'], 'safe'],
[['image'], 'file', 'extensions'=>'jpg, gif, png', 'on'=>'update', 'message' => 'Wrong extension'],
Задача ещё не решена.
Других решений пока нет …