событие fileupload с asp.net после того, как выбор сделан и перед тем, как представить для загрузки

Я хотел бы отобразить размер файла, который был выбран с помощью кнопки обзора элемента управления FileUpload.

В идеале это значение отображается сразу после выбора пользователем файла, но до нажатия кнопки "Загрузить файл".

У меня есть и на webform. Кнопка выглядит так:

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

событие onclick для элемента управления button приводит к обратной передаче, и файл загружается.

Я знаю, как получить размер файла, но не до нажатия кнопки Загрузить файл и происходит обратная передача.

есть ли событие, связанное с веб-элементом управления FileUpload, которое может отправить форму (т. е. обратную передачу) без нажатия кнопки?

весь смысл в том, что я хочу дать пользователю почувствовать, сколько времени может занять загрузка...установите другое выражение для файла 10mb, чем для файла 2kb, и т. д.).

1 ответов


проблема в том, что нет никакого способа узнать размер файла на стороне клиента без обратной. Вы можете использовать Ajax, но это все равно будет означать загрузку файла.

Это можно сделать только с помощью ActiveX контроль какой-то. Я бы рекомендовал использовать что-то вроде Silverlight FileUploader потому что он получает размер файла перед отправкой обратно и даже имеет хороший прогресс указатель.

обновление: если вы хотите вызвать запрос postback или Ajax после нажатия пользователем кнопки Обзор, событие на стороне клиента - "onchange". Вот пример использования события onchange.

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

вы можете иметь onchange, вызвать ajax для загрузки файла, а затем обновить метку, показывающую размер файла. Проблема с этим заключается в том, что если это большой файл, он побеждает цель дать пользователю знать перед рукой, что он будет это займет много времени.

вот еще одна рекомендация: есть плагин jQuery, который использует flash для определения размера файла перед загрузкой, и он очень прост в использовании. Проверьте это на jQuery Uploadify