UploadFile Control在PostBacks上丢失了它的数据?

时间:2011-08-01 07:15:04

标签: c# asp.net webforms

怎么了! ..似乎这是一个常见的问题..即使我试图坚持它的价值我只能把它保存在像隐藏字段的任何地方,但看起来没有属性可以保存文件在本地机器上的整个位置,即使我明白了,我无法将值分配回FileUpload,因为它的所有属性都是ReadOnly!

请提供任何简单的解决方案!?

2 个答案:

答案 0 :(得分:0)

这是设计 - 文件上传是只读的,否则会带来巨大的安全隐患......请参阅http://www.w3.org/TR/html4/interact/forms.html#file-select

取决于您尝试实施的功能,可能还有其他可能的解决方案......请详细说明。

答案 1 :(得分:0)

想象一下,如果你可以以编程方式设置该字段;什么会阻止恶意开发者填充该字段并访问用户的文件?

简短回答是每次回发都需要用户再次选择文件进行上传。如果发生回发,则表示文件不正确,因此用户应该选择另一个文件。

如果由于用户输入了错误的文件元数据而发生回发,而文件本身就很好,那么您只需缓存文件名并再次为用户显示。只需将伪造的只读文本框放在实际文件上载文本框的顶部,然后将文件名显示给用户。该文件应该已经上传到Web服务器,因此不需要上传(即真正的文件上载文本框可以保持空白)