Поддержание значения в Zend_Form_Element_File - PullRequest
0 голосов
/ 26 июня 2010

У меня есть один элемент Zend_Form_Element_File, который отлично справляется с загрузкой. Я хочу знать, возможно ли использовать только элемент Zend_Form_Element_File и при этом поддерживать значение, которое было изначально загружено? Обычно такого рода вещи будут обрабатываться через скрытое поле, но я бы хотел оставить его в самом элементе Zend_Form_Element_File.

Итак, как бы я хотел это сделать:

  1. Выберите файл (foo.txt)
  2. Загрузить файл с жестко заданным адресом
  3. Сохранить имя файла в базе данных
  4. Перезагрузить файл, но предварительно заполнить элемент файла (?) Сохраненным значением в базе данных (foo.txt)
  5. Передать это значение обратно при отправке (или прочитать вновь отправленное значение (bar.txt)

Я попытался переопределить метод setValue () (цепляясь за соломинку), добавив пользовательский декоратор, который помещает скрытый элемент рядом с элементом файла, и закрепив все остальные декораторы и в основном изменив поле на скрытое поле.

Мне не очень везет с любым из-за разочарования по поводу ограничений.

Итак, возможно ли сделать что-то подобное? Каков наилучший способ сделать это (кроме переключения между наличием элемента файла или наличием пустого элемента)?

Спасибо.

1 Ответ

3 голосов
/ 26 июня 2010

Вы не можете сознательно предварительно заполнить ввод HTML-файла, потому что вы никогда не узнаете местоположение файла на локальном диске пользователя. Это по замыслу.

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

...