4

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

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

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

用户浏览文件后,控件的hasfile属性uploadedFile变为truefalse开始时)。美好的。用户点击按钮,文件上传。我在那里有代码,可以向我发送一封电子邮件,让我知道文件已上传,只要hasfiletrue.

如果用户在他的浏览器中按下刷新按钮,页面会重新加载,但hasfile属性没有被清除,所以我收到了另一封电子邮件!(如果我使用 Firefox 在没有缓存的情况下重新加载的能力,那么一切都会正确刷新)

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

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

4

2 回答 2

15

hasfile在 LoadPage() 函数中添加清除属性的功能,当您刷新时(当页面加载时)会调用该函数。

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

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

或者

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

private void clearFileUpload()
{
    fileUpload.PostedFile.InputStream.Dispose();
    // fileUpload.HasFile is now  false
}
于 2012-05-08T01:18:10.073 回答
0

我这样做是为了清除 FileUpload:

fubanner.Attributes.Clear();
于 2017-03-09T11:55:05.443 回答