我有一个Zend_Form_Element_File元素可以很好地处理上传。我想知道的是,是否可以仅使用Zend_Form_Element_File元素并仍然保持最初上传的值?通常这种事情会通过隐藏字段来处理,但我想将它保存在Zend_Form_Element_File元素中。
那么,我想怎么做:
我已经尝试覆盖setValue()方法(抓住吸管),添加一个自定义装饰器,将隐藏元素放在文件元素旁边,并将所有其他装饰器连接起来,基本上将字段更改为隐藏字段。
由于对约束的挫败,我没有超级好运。
那么,有可能做这样的事吗?最好的方法是什么(除了在有文件元素或有空元素之间切换)?
谢谢。
答案 0 :(得分:3)
您无法有意义地预先填充HTML文件输入,因为您永远不会知道该文件在用户本地磁盘上的位置。这是设计的。
如果您已经上传了文件,并且由于某种原因重新显示表单(因为某些其他字段无法验证,或者用户稍后正在编辑该记录),则您不想要预先填充文件输入。您将要显示(只读)有关该文件的一些信息(它的文件名,或者它是图像,可能是缩略图),并提供用户可以选择的空文件输入,可选,用于替换文件。