powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Фоновая загрузка файлов
13 сообщений из 13, страница 1 из 1
Фоновая загрузка файлов
    #38653042
Sanprof
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Собственно вопрос вот в чем, есть у меня на сайте некоторые файлы разных размеров (от Кб до сотен Мб), которые пользователи могут загружать. Эти файлы лежат в определенном каталоге на диске, скачивающий пользователь не имеет доступа по прямой ссылке на эти файлы, ссылка на файл, для примера, http://mysite.com/download.aspx?f=DrfgtFvseF15Dfv, далее в download.aspx есть код
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
FileInfo fi = new FileInfo( Server.MapPath( "~" ) + "\\downloads\\" + fileName );
if (fi != null && fi.Exists)
{
	int BUFF_LENGTH = 10000;
	int length = Convert.ToInt32( fi.Length > BUFF_LENGTH ? BUFF_LENGTH : fi.Length );
	long dataToRead = fi.Length;
	using (FileStream fs = fi.OpenRead())
		try
		{
			Response.BufferOutput = false;
			Response.ContentType = "application/octet-stream";
			Response.AddHeader( "content-disposition", "attachment; filename=" + fileName );
			byte[] fileContent = null;
			while (dataToRead > 0)
				if (Response.IsClientConnected)
				{
					fileContent = new byte[length];

					length = fs.Read( fileContent, 0, BUFF_LENGTH );

					Response.OutputStream.Write( fileContent, 0, fileContent.Length );
					Response.Flush();
					dataToRead -= length;
				}
				else
					dataToRead = -1;
		}
		finally
		{
			Response.Close();
		}
}


Этот код работает как надо и файлы загружаются. Но есть одно НО, если клиент поставил на закачку большой файл, то он не может перемещаться по сайту.
И попутный вопрос, мне нужна реализация именно с буфером, так как у меня сейчас, не хотелось бы загружать в память по 800Мб каждым клиентом - это не вариант, при такой реализации на клиентской стороне не показывается прогресс (постоянно 0%) и размер загружаемого файла, это как то можно передавать, может в хеадерах или еще как?
...
Рейтинг: 0 / 0
Фоновая загрузка файлов
    #38653055
Фотография Нахлобуч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HttpResponse.TransmitFile()
...
Рейтинг: 0 / 0
Фоновая загрузка файлов
    #38653204
Sanprof
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
НахлобучHttpResponse.TransmitFile()
Нашел на одну буржуйскую статейку как использовать HttpResponse.TransmitFile(), применил, вобщем та же бодяга, файлы скачиваются, а в это время по сайту лазить нельзя, т.к. ждем ответа от сервера.
...
Рейтинг: 0 / 0
Фоновая загрузка файлов
    #38653208
Sanprof
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мне как-то нужно асинхронность применить. А как я не знаю и решений в интернете не нашел, вот сюда и написал.
...
Рейтинг: 0 / 0
Фоновая загрузка файлов
    #38653222
Кавказ-сила
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SanprofМне как-то нужно асинхронность применить http://www.uploadify.com/download/download-uploadifive-standard/
...
Рейтинг: 0 / 0
Фоновая загрузка файлов
    #38653241
Sanprof
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кавказ-силаSanprofМне как-то нужно асинхронность применить http://www.uploadify.com/download/download-uploadifive-standard/
а что нибудь бесплатное?
...
Рейтинг: 0 / 0
Фоновая загрузка файлов
    #38653246
Кавказ-сила
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Фоновая загрузка файлов
    #38653447
Фотография Яростный Меч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SanprofНахлобучHttpResponse.TransmitFile()
Нашел на одну буржуйскую статейку как использовать HttpResponse.TransmitFile(), применил, вобщем та же бодяга, файлы скачиваются, а в это время по сайту лазить нельзя, т.к. ждем ответа от сервера.открывай ссылку на загрузку в отдельной вкладке.
...
Рейтинг: 0 / 0
Фоновая загрузка файлов
    #38653561
Sanprof
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кавказ-сила http://www.uploadify.com/download/
вижу только код для загрузки файлов на сервер, а мне надо наоборот.
...
Рейтинг: 0 / 0
Фоновая загрузка файлов
    #38653571
Sanprof
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Яростный МечSanprofпропущено...

Нашел на одну буржуйскую статейку как использовать HttpResponse.TransmitFile(), применил, вобщем та же бодяга, файлы скачиваются, а в это время по сайту лазить нельзя, т.к. ждем ответа от сервера.открывай ссылку на загрузку в отдельной вкладке.
хм, это я попробовал сразу же после. получил то же самое, но для конкретной сессии, тоесть в других браузерах (с другими сессиями) я во время закачки свободно перемещаюсь по страницам, блокируется только качающий клиент.
...
Рейтинг: 0 / 0
Фоновая загрузка файлов
    #38653723
Фотография Яростный Меч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sanprofхм, это я попробовал сразу же после. получил то же самое, но для конкретной сессии, тоесть в других браузерах (с другими сессиями) я во время закачки свободно перемещаюсь по страницам, блокируется только качающий клиент. http://www.olegaxenow.com/2011/11/sessiya-aspnet-i-problema-s.html

сделай отдельный хандлер (а не страницу aspx) для скачивания, помечай интерфейсом IReadOnlySessionState , либо вообще без оного (если сессия не нужна).
тогда, по идее, он не будет блокировать страницы.
...
Рейтинг: 0 / 0
Фоновая загрузка файлов
    #38653728
Sanprof
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Яростный МечSanprofхм, это я попробовал сразу же после. получил то же самое, но для конкретной сессии, тоесть в других браузерах (с другими сессиями) я во время закачки свободно перемещаюсь по страницам, блокируется только качающий клиент. http://www.olegaxenow.com/2011/11/sessiya-aspnet-i-problema-s.html

сделай отдельный хандлер (а не страницу aspx) для скачивания, помечай интерфейсом IReadOnlySessionState , либо вообще без оного (если сессия не нужна).
тогда, по идее, он не будет блокировать страницы.
ок, спс, почитаю, завтра отпишусь, а то уже конец рабочего дня.
...
Рейтинг: 0 / 0
Фоновая загрузка файлов
    #38654384
Sanprof
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Яростный МечSanprofхм, это я попробовал сразу же после. получил то же самое, но для конкретной сессии, тоесть в других браузерах (с другими сессиями) я во время закачки свободно перемещаюсь по страницам, блокируется только качающий клиент. http://www.olegaxenow.com/2011/11/sessiya-aspnet-i-problema-s.html

сделай отдельный хандлер (а не страницу aspx) для скачивания, помечай интерфейсом IReadOnlySessionState , либо вообще без оного (если сессия не нужна).
тогда, по идее, он не будет блокировать страницы.
Яростный Меч , большое спасибо, прочитал статью, применил ReadOnly к странице, которая отвечает за скачку файла, плюс открываю ее в отдельной вкладке, и теперь во время закачки, я могу свободно перемещаться по сайту
Код: c#
1.
<%@ Page Language="C#" EnableSessionState="ReadOnly" %>
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Фоновая загрузка файлов
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]