Там нет никакого способа сделать это «чисто», без использования функции управления загрузкой флэша или файла Silverlight. Лучшее, что вы можете сделать, не используя эти методы, - установить maxRequestLength
в файле web.config.
Пример:
<system.web>
<httpRuntime maxRequestLength="1024"/>
В приведенном выше примере будет ограничивать размер файла до 1 Мбайт. Если пользователь пытается отправить что-либо большее, он получит сообщение об ошибке, указывающее, что максимальная длина запроса превышена. Это не очень приятное сообщение, но если вы хотите, вы можете переопределить страницу ошибок в IIS, чтобы она соответствовала вашему сайту.
EDIT БЛАГОДАРЯ COMMENT:
Так ваш, вероятно, используя несколько методов, чтобы сделать запрос, чтобы получить файл с URL, так что я буду размещать 2 возможных решения. Первый использует .NET WebClient
:
// This will get the file
WebClient webClient = new WebClient();
webClient.DownloadFileCompleted += new System.ComponentModel.AsyncCompletedEventHandler(DownloadCompleted);
webClient.DownloadProgressChanged += new DownloadProgressChangedEventHandler(DownloadProgressChanged);
webClient.DownloadFileAsync(new Uri("http://www.somewhere.com/test.txt"), @"c:\test.txt");
private void DownloadProgressChanged(object sender, DownloadProgressChangedEventArgs e)
{
WebClient webClient = (WebClient)(sender);
// Cancel download if we are going to download more than we allow
if (e.TotalBytesToReceive > iMaxNumberOfBytesToAllow)
{
webClient.CancelAsync();
}
}
private void DownloadCompleted(object sender, System.ComponentModel.AsyncCompletedEventArgs e)
{
// Do something
}
Другой метод должен был просто сделать основной веб-запрос, прежде чем делать загрузку, чтобы проверить размер файла:
HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(new Uri("http://www.somewhere.com/test.txt"));
webRequest.Credentials = CredentialCache.DefaultCredentials;
HttpWebResponse webResponse = (HttpWebResponse)webRequest.GetResponse();
Int64 fileSize = webResponse.ContentLength;
if (fileSize < iMaxNumberOfBytesToAllow)
{
// Download the file
}
Надеюсь, в один из этих решений поможет или по крайней мере, вы на правильном пути.
максимум загрузки или максимальной загрузки? – Aristos
@Aristos - Я говорю о максимальной загрузке. Моя страница asp .net загружает URL-адрес, который передается ему. –