C# UploadFile控件在回发时丢失其数据?

C# UploadFile控件在回发时丢失其数据?,c#,asp.net,webforms,C#,Asp.net,Webforms,怎么了。。这似乎是一个普遍的问题。。即使我试图保留它的值,我也只能将它保存在任何地方,比如hiddenfield,但是看起来没有任何属性可以将文件的整个位置保存在本地计算机上,即使我得到了它,我也无法将该值分配回FileUpload,因为它的所有属性都是只读的 有什么简单的解决办法吗 这是设计的-文件上传是只读的,因为否则会有巨大的安全风险。。。看 根据您尝试实现的功能,可能还有其他可能的解决方案。。。请详细说明。想象一下,如果您可以通过编程设置该字段;如何阻止恶意开发人员填充该字段并访问用户的

怎么了。。这似乎是一个普遍的问题。。即使我试图保留它的值,我也只能将它保存在任何地方,比如hiddenfield,但是看起来没有任何属性可以将文件的整个位置保存在本地计算机上,即使我得到了它,我也无法将该值分配回FileUpload,因为它的所有属性都是只读的


有什么简单的解决办法吗

这是设计的-文件上传是只读的,因为否则会有巨大的安全风险。。。看


根据您尝试实现的功能,可能还有其他可能的解决方案。。。请详细说明。

想象一下,如果您可以通过编程设置该字段;如何阻止恶意开发人员填充该字段并访问用户的文件

简而言之,每次回发都需要用户再次选择要上传的文件。如果发生回发,则表示该文件已损坏,因此用户仍应选择另一个文件


如果发生回发是因为用户为文件输入了不正确的元数据,而文件本身没有问题,那么您可以缓存文件名并再次为用户显示它。只需在实际文件上传文本框的顶部放置一个假的只读文本框,并将文件名显示回用户即可。文件应该已经上传到web服务器,因此不需要上传,即真正的文件上传文本框可以保持空白

我明白你的意思,这绝对有风险。。但是如果有风险的话,为什么微软不让我们省心,让上传的文件通过回发来保存数据呢。。我一直有相同的问题与中继器,但这是可以解决的控制绑定时间!这里有一个例子:Div1:Personal Info Div2:skills N.B我通过两个按钮在两个div中导航,显示我需要的一个并隐藏其他div。现在两个div都包含了输入一些相关数据的控件,我可能只需在第一个div中输入我的名字,然后进入第二个div添加技能,我需要返回第一个div继续我的个人信息。。这种切换会经常发生,所以我需要在控件中保持信息的持久性,这样如果我从一个div切换到另一个div,我就不想丢失我首先输入的数据,这些数据可以正常工作,但不能用于文件上载。。。也许你应该在用户提交之前将文件上传放在流程的最后一步,或者放在始终可见的div上。。。否则,当上传的文件第一次到达时,您必须将文件名显示在某个div中,并使用按钮/链接将其再次删除。关于安全问题,您是对的。。但是在我的页面中发生的回发与文件上传完全无关!:s请查看我对Yahia回答的评论。