У меня есть веб-страница, на которую я хочу, чтобы люди могли загружать контент. (Будет только небольшое количество людей, использующих его, так как доступ ограничен, поэтому я не слишком беспокоюсь о любых атаках типа DOS.)
Я использую элемент управления fileUpload для этого:
protected void Button1_Click(object sender, EventArgs e)
{
if (fileUploader.HasFile)
try {
fileUploader.SaveAs(Server.MapPath("Uploads\\") + fileUploader.FileName);
errorMessage.Text = "File name: " +
fileUploader.PostedFile.FileName + "<br>" +
fileUploader.PostedFile.ContentLength + " kb<br>";
}
catch (Exception ex) {
errorMessage.Text = "ERROR: " + ex.Message.ToString();
}
else
{
errorMessage.Text = "You have not specified a file.";
}
}
Файлы могут иметь размер до 50 МБ (я изменил web.config, чтобы разрешить это). У меня проблема в том, что с большими файлами пользователь не может видеть ход загрузки.
Я хочу знать, как я могу отобразить прогресс на странице, чтобы пользователь мог видеть, что что-то происходит. Не суетиться ни о чем причудливом - просто что-то вроде:
загружено байт / всего байт
было бы хорошо. Я могу получить общее количество байтов с помощью postsFile.ContentLength, но не знаю, как загрузить загруженные байты.
Также - могу ли я обновить экран во время загрузки?
Приветствия
Ben