Недавно я использовал следующий код ...
Response.AddHeader("Content-disposition", "attachment; filename=" + attachment.Filename);
Response.AddHeader("Content-length", attachment.Filedata.Length.ToString());
Response.ContentType = attachment.ContentType;
Response.OutputStream.Write(attachment.Filedata.ToArray(), 0, attachment.Filedata.Length);
Response.End();
(в этом случае мои вложения фактически сохраняются в таблице базы данных, но это просто запись байтового массива в выводпоток)
, а не ваш подход ...
Response.TransmitFile(filepath);
Скорость передачи кажется довольно хорошей.Я скачал 3,5 МБ в считанные секунды с живого сайта.(не только локально!)
Я знаю, что должен использовать HttpHandler, а не перехватывать Response, но пока это работает.Кроме того, мне, вероятно, следует прочитать байтовый массив порциями, чтобы не занимать слишком много памяти.В какой-то момент я вернусь и немного переделаю.
Итак, вместо этого вы можете попробовать Response.OutputStream.Write
или написать HttpHandler.
В любом случае, я надеюсь, это поможет вам.1018 *