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

bgm*_*der 3 asp.net file-upload .net-2.0

药膏!我看过像这样的帖子,人们有问题,他们的FileUpload控件属性hasfile总是假的.我的问题是相关的,但不同,需要一个不同的答案.

我有一个.net 2.0 fileupload控件,旁边有一个按钮,如下所示:

<asp:fileupload id="uploadedFile" runat="server" />
<asp:Button runat="server" ID="upload" Text="Upload" OnClick="Page_Load"/>
Run Code Online (Sandbox Code Playgroud)

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

在用户浏览文件之后,控件的uploadedFile属性true变为false(它hasfile开始于).精细.用户单击按钮并上载文件.我有一些代码那里,向我发送一封电子邮件,让我知道一个文件已被只要上传truehasfile.

我的问题是: 如果用户在他的浏览器中按下刷新按钮,页面将被重新加载,但该hasfile属性未被清除,因此我收到了另一封电子邮件!(如果我使用Firefox无需缓存重新加载的能力,那么一切都正确刷新)

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

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

Lyu*_*rov 12

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

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

private void clearFileUpload()
{
    fileUpload.Dispose();
}
Run Code Online (Sandbox Code Playgroud)

要么

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

private void clearFileUpload()
{
    fileUpload.PostedFile.InputStream.Dispose();
    // fileUpload.HasFile is now  false
}
Run Code Online (Sandbox Code Playgroud)