Intereting Posts
Как вы читаете из многомерного варианта массива, возвращаемого из COM-объекта в PHP? Можно вставить данные в две разные таблицы в mysql одним вставным запросом php? Как переименовать PHPSESSID? PHP Pagination удаляет поисковый запрос и возвращается обратно к отображению всех результатов, исправлению? Как преобразовать некоторый символ в числовой в php? PHP Warning: POST Content-Length из n байтов превышает предел 3145728 байт в Unknown в строке 0 Попытка json_encode в PHP поиск файла в php, который состоит из 4 каталогов Редактирование фотографий в php Как настроить работу cron в cpanel jQuery анализирует / отображает данные json от php json_encode Уменьшить макет групп форм в Twig с помощью Symfony2 (.7) SQL Statement для создания таблицы в результате операции подсчета? geo_point для поля местоположения в поле массива Получение всех данных в одном запросе и обработке в PHP и повторение запросов для каждой части данных

php сохраняет значение полей файла при проверке формы возвращает false

Я работаю с формами форм yii, и у меня есть такая форма:

<?php echo CHtml::beginForm('', 'post', array('enctype' => 'multipart/form-data')); ?> Image:<?php echo CHtml::activeFileField($model, 'image');?> <?php echo CHtml::error($model, 'image');?> Full name: <?php echo CHtml::activeTextField($model, 'fullName');?> <?php echo CHtml::error($model,'fullName'); ?> <?php echo CHtml::submitButton('save);?> <?php echo CHtml::endForm();?> 

если есть ошибка при вводе пользователя, поле файла становится пустым, и тогда пользователь должен повторно выбрать его образ. Есть ли способ сохранить значение поля файла в yii или php?

заранее спасибо

Короткий ответ: Нет

Вход файла зависит от локальной файловой системы пользователя, о которой сервер (и, следовательно, PHP) ничего не знает. Итак, одна форма была отправлена, пользователю придется повторно выбрать файл. Это больше проблема безопасности, чем что-либо еще.

Вот два возможных подхода к улучшению UX в этом отношении:

  • Файл будет успешно загружен, поэтому вы можете сохранить его на сервере и использовать свою копию при повторной отправке формы (трудно реализовать, потенциально запутать пользователя и вообще не рекомендуется)
  • (лучше). Вы можете проверить сторону входа на вход формы с помощью Javascript или на стороне сервера через AJAX – перед отправкой. Если вы это сделаете, вы все равно будете проверять серверную часть, но это поможет предоставить законным пользователям лучший пользовательский интерфейс, который, похоже, вас беспокоит.