选择完成后和提交上传之前的asp.net FileUpload事件

时间:2009-05-06 18:03:08

标签: asp.net file-upload

我想显示通过FileUpload控件的Browse按钮选择的文件的大小。

理想情况下,此值会在用户选择文件后立即显示,但在单击“上载文件”按钮之前。

我有一个网络表格。 Button看起来像这样:

<asp:Button ID="UploadButton" runat="server" onclick="UploadButton_Click" Text="Upload File"/>         

按钮控件的onclick事件会导致回发并上传文件。

我知道如何在单击“上载文件”按钮并发生回发之前获取文件的大小。

是否有与FileUpload Web控件关联的事件可以提交表单(即回发)而无需单击按钮?

整个意图是我想让用户感觉上传可能需要多长时间...为10mb文件设置不同于2kb文件的预期等等。

1 个答案:

答案 0 :(得分:14)

问题是,如果没有回发,就无法找到客户端文件的大小。您可以使用Ajax,但这意味着首先要上传文件。

这只能使用某种 ActiveX 控件来完成。我建议使用 Silverlight FileUploader 之类的东西,因为它会在回发之前得到文件的大小,甚至还有一个很好的进度指示器。

更新:如果您想在用户点击浏览后触发回发或Ajax请求,则客户端事件为“onchange”。以下是如何使用onchange事件的示例。

<asp:FileUpload runat="server" 
    onchange="alert('you selected the file: '+ this.value)" />

您可以拥有onchange,触发ajax首先上传文件,然后更新显示文件大小的标签。这样做的问题在于,如果它是一个大文件,它会让用户事先知道这需要很长时间。

这是另一个建议:有一个jQuery插件,在上传之前使用flash来确定文件的大小,它非常容易使用。请在 jQuery Uploadify

上查看