событие 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