FileUpload控件在PostBack上丢失了它的内容

时间:2012-02-17 20:25:00

标签: c# asp.net file-upload postback

我有3个FileUpload控件。他们在页面PostBack时丢失了内容。当我点击按钮显示一些隐藏的控件时,页面会回发。

如何在不使用session的情况下保留其内容?

3 个答案:

答案 0 :(得分:4)

这实际上与安全有关。想象一下,访问一个文件上传的网站,并预先填写类似“c:\ Users \ Meensat \ passwords.docx”的路径。你点击提交,他们就有你的密码。

您在回发时可以执行的操作是使用.PostedFile属性检查文件,如果存在,请将其保存到临时文件中。在Session中,存储对临时文件,文件名等的引用

修改

.PostedFile实际上是FileUpload控件的属性。

http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.fileupload.postedfile.aspx

该链接有示例代码,显示如何将文件保存到磁盘。

答案 1 :(得分:1)

由于HTTP / Forms的工作方式,实际上没有办法解决这个问题。该文件将在第一篇文章中提交给服务器。您还可以将文件字节存储在ViewState中,但回发将很慢。您的选择是不执行回发并使用javascript或其他替代方法来获取相同的功能或将文件存储在服务器上的某个位置(例如:session,temp文件夹,数据库)。

答案 2 :(得分:0)

在服务器端保存FileUpload控件的内容。或者你可以在html页面中渲染它并使用CSS

隐藏它