如何清除asp:FileUpload控件上的hasfile属性?

时间:2012-05-08 00:59:46

标签: asp.net .net-2.0 file-upload

我有一个.NET 2.0文件上传控件,旁边有一个按钮,如下所示:

<asp:fileupload id="uploadedFile" runat="server" />
<asp:Button runat="server" ID="upload" Text="Upload" OnClick="Page_Load"/>

现在,这一切都在webpart的一个页面上(sharepoint,也就是说 - 对于那些不熟悉webparts的人来说 - 它基本上是一个iframe)。另请注意,我正在调用Page_Load。

用户浏览文件后,hasfile控件的uploadedFile属性变为true(开始时为false)。精细。用户单击按钮并上载文件。我有代码,只要hasfiletrue,就会向我发送一封电子邮件,告诉我文件已上传。

如果用户在浏览器中按下刷新按钮,则会重新加载页面,但hasfile属性未被清除,因此我收到了另一封电子邮件! (如果我使用Firefox无需缓存就可以重新加载,那么所有内容都会正确刷新)

如何清除FileUpload控件上的hasfile属性?或者当用户重新加载时如何使页面跳过缓存?

我不介意调用除Page_Load之外的函数,但是它需要能够接收参数,所以我也可以从Page_Load调用它(由于我正在做的其他事情)。

2 个答案:

答案 0 :(得分:11)

添加清除LoadPage()函数中的hasfile属性的功能,当你刷新时(因为页面加载),它会被调用。

或者也许不是放置功能,而是编写实现所述功能的函数并从页面加载中调用它。 Guide Code

private void clearFileUpload()
{
    fileUpload.Dispose();
}

OR

尝试在上传文件后立即处理问题。

private void clearFileUpload()
{
    fileUpload.PostedFile.InputStream.Dispose();
    // fileUpload.HasFile is now  false
}

答案 1 :(得分:0)

我这样做是为了清除FileUpload:

fubanner.Attributes.Clear();