我有3个FileUpload
控件。他们在页面PostBack
时丢失了内容。当我点击按钮显示一些隐藏的控件时,页面会回发。
如何在不使用session
的情况下保留其内容?
答案 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