我有一个.NET 2.0 fileupload控件,在它旁边有一个按钮,如下所示:
<asp:fileupload id="uploadedFile" runat="server" />
<asp:Button runat="server" ID="upload" Text="Upload" OnClick="Page_Load"/>
现在,所有这些都位于Webpart内的页面上(共享点,也就是说-对于不熟悉Webpart的人来说,它基本上是iframe)。还要注意,我正在调用Page_Load。
用户浏览文件后,
hasfile
控件的uploadedFile
属性将变为true
(开始时是false
)。精细。用户单击按钮,文件上传。我那里有代码,只要hasfile
是true
,它就会向我发送电子邮件以通知我文件已上传。如果用户按下浏览器中的“刷新”按钮,则页面将重新加载,但
hasfile
属性未清除,因此我收到了另一封电子邮件! (如果我使用Firefox的功能在没有缓存的情况下重新加载,则所有内容都会正确刷新)如何清除FileUpload控件上的
hasfile
属性?或者,当用户重新加载时,如何使页面跳过缓存?我不介意调用Page_Load以外的函数,但是它需要能够接收参数,因此我也可以从Page_Load调用它(考虑到我正在做的其他事情)。
最佳答案
在LoadPage()函数中添加清除hasfile
属性的功能,当您刷新(页面加载时)时会调用惊奇的惊喜。
或者,也许不是放置功能,而是编写实现所述功能的功能并从页面加载中调用它。
Guide Code:
private void clearFileUpload()
{
fileUpload.Dispose();
}
要么
尝试在上传文件后立即解决该问题。
private void clearFileUpload()
{
fileUpload.PostedFile.InputStream.Dispose();
// fileUpload.HasFile is now false
}