Re: как правильно передавать большие файлы
От: Mikluho Россия  
Дата: 07.04.09 07:40
Оценка:
Здравствуйте, Kingofastellarwar, Вы писали:

K>В общем как сделать правильный нетяжёлый для сервера слив файлов


K>я насобирал разных советов и родил такое, но оно под IE вообще не работает, а под остальными работает как-то неправильно, нет процедуры закачки как таковой


K>чувствую это порно, не тот метод, хотя в инете его почему-то используют


K>
K>string path = Server.MapPath(/*путьььььььь*/);

K>System.IO.FileInfo fi = new FileInfo(path);

K>Response.Clear();
K>Response.ContentType  =  "application/octet-stream";
K>Response.AddHeader("Content-Disposition", string.Format("attachment; filename={0}", Path.GetFileName(path)));
K>Response.AddHeader("Content-Length", fi.Length.ToString());

K>long sent = 0;
K>long left = fi.Length;

K>while(left > 0)
K>{
K>    if(Context.Response.IsClientConnected)
K>    {
K>        long block = 1024;
K>        if(left < 1024)
K>        {
K>            block = left;
K>        }

K>        Response.WriteFile(path, sent, block);
K>        Response.Flush();

K>        sent += block;
K>        left -= block;
K>    }
K>}
K>Response.End();    
K>


или уж пиши из файлового потока в выходной поток с буфером не менее 64к, или смотри в сторону HttpResponse.TransmitFile
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.