Response.TransmitFile не работает в Safari по SSL - PullRequest
0 голосов
/ 09 марта 2012

У нас есть страница для скачивания, где пользователи могут скачать PDF документ. Эта страница в настоящее время используется как HTTPS. Под Safari только (как для Windows, так и для Mac) загрузка завершится неудачно в 99% случаев после загрузки примерно на 3/4 (однажды в голубой луне это будет работать) Проблема немедленно исчезнет, ​​если мы заменим часть «https» URL-адреса на «http».

Код выглядит следующим образом, я считаю, что стандартный вывод файла .NET:

string pdfFile = // generate file here and get the path...
var info = new FileInfo(pdfFile);
Response.ClearContent();
Response.ClearHeaders();
Response.ContentType = "application/pdf";
Response.AppendHeader("Content-Disposition", string.Format("attachment;Filename={0}", info.Name);
Response.TransmitFile(pdfFile);
Response.Flush();
Response.Close();

Эта проблема только в Safari; IE, Firefox и Chrome загружают файл правильно каждый раз. Safari терпит неудачу 9/10 раз.

Есть идеи? У нас около 4000 посетителей в месяц в Safari, поэтому мы не можем игнорировать это.

1 Ответ

0 голосов
/ 09 марта 2012

Вместо этого вы всегда можете попробовать файл response.writefile (подумайте, что он сначала загружается в память на сервере, как и для передачи файла), просто чтобы посмотреть, поможет ли это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...