как правильно передавать большие файлы
От: Kingofastellarwar Украина  
Дата: 01.04.09 19:38
Оценка:
В общем как сделать правильный нетяжёлый для сервера слив файлов

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

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

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

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

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

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

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

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

        sent += block;
        left -= block;
    }
}
Response.End();
Я изъездил эту страну вдоль и поперек, общался с умнейшими людьми и я могу вам ручаться в том, что обработка данных является лишь причудой, мода на которую продержится не более года. (с) Эксперт, авторитет и профессионал из 1957 г.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.