Запись файла пользователям, выдающим спорадические ошибки в IE - PullRequest
0 голосов
/ 17 ноября 2009

У меня очень интересная проблема только с конкретными реализациями IE. У меня есть страница ASPX, которая используется для записи файлов пользователю, так как часть процесса на странице использует следующий код для записи файла пользователю.

Response.Clear();
Response.AddHeader("content-disposition", "attachment;filename=download" + System.IO.Path.GetExtension(oInfo.SupportingFilePath));
Response.ContentType = "application/octet-stream";
Response.WriteFile(Server.MapPath(oInfo.SupportingFilePath));
Response.End();

В 99,5% случаев это работает просто отлично, однако в некоторых редких случаях в IE только на определенных машинах пользователю предлагается загрузить страницу .aspx и / или выдается сообщение об ошибке.

Кто-нибудь имеет представление о том, что здесь происходит?

Ответы [ 2 ]

1 голос
/ 17 ноября 2009

Согласно RFC2231, значения параметров заголовков MIME должны быть включены в двойные кавычки: http://www.ietf.org/rfc/rfc2231.txt (страница 3, если вам это интересно). Это должно быть что-то вроде "attachment; filename =" "download" + System.IO.Path.GetExtension (oInfo.SupportingFilePath) + "" "");

0 голосов
/ 17 ноября 2009

Хотя этого не должно происходить, потому что вы установили ContentType и content-disposition, я считаю, что встроенная в MIME сниффинг / обработка MIME является причиной проблемы. Вот несколько обходных путей, которые вы можете попробовать:

  • Добавьте расширение файла в строку запроса на странице .aspx, которая передает файл, т.е. http://blahblahblah/page.aspx?.ext
  • Если вы используете IE 8, вы можете указать другой заголовок ответа для "nosniff", как указано здесь .

У меня все еще есть проблемы с этим, как задокументировано здесь , но я надеюсь, что одна из них поможет.

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