我有一个.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)。精细。用户单击按钮,文件上传。我那里有代码,只要hasfiletrue,它就会向我发送电子邮件以通知我文件已上传。

如果用户按下浏览器中的“刷新”按钮,则页面将重新加载,但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
}

07-28 06:44