Firefox время от времени отображает поток файлов вместо документа - PullRequest
3 голосов
/ 22 февраля 2010

Когда пользователь запрашивает загрузку документа, я записываю файл PDF в HttpResponse, используя метод HttpResponse.OutputStream.Write. Он работает в любом браузере, кроме Firefox (3.5.8). В Firefox иногда он отображает файл, а иногда - фактический поток байтов. Когда отображается поток байтов, ответ http никогда не заканчивается. Я вижу статус «передача данных», и поток байтов заканчивается EOF. Через некоторое время я получаю окно «сброс соединения».

альтернативный текст http://img31.imageshack.us/img31/7907/displaybytes.png альтернативный текст http://img193.imageshack.us/img193/7246/displayendofstream.png альтернативный текст http://img211.imageshack.us/img211/1774/timeout.png

Вот заголовок ответа:

HTTP/1.1 200 OK
Cache-Control: no-cache
Pragma: no-cache
Content-Length: 103185
Content-Type: application/pdf
Expires: -1
Server: Microsoft-IIS/7.0
X-AspNet-Version: 2.0.50727
Content-Description: stuff.pdf
Content-Disposition: inline;filename="stuff.pdf"
X-Powered-By: ASP.NET
Date: Mon, 22 Feb 2010 16:15:38 GMT

Ответы [ 5 ]

1 голос
/ 25 февраля 2010

Я думаю, что проблема, скорее всего, в Firefox или с плагином Acrobat.

Всякий раз, когда что-то работает, но не другие, вы должны очень внимательно относиться к различиям. Вопрос всегда в различиях.

В вашем случае вы никогда не узнаете почему, потому что различия могут быть в браузере или плагине. Ваш заголовок выглядит так, как будто должен выглядеть. Работает во всех других браузерах. Исходя из вашего заголовка, так и должно работать в этом браузере.

Я бы поставил это Мозилле и посмотрел, что они скажут.

В качестве потенциального обходного пути, вы можете попробовать изменить свой Content-Disposition на 'attachment', когда браузер вашего пользователя FF. Это приведет к появлению диалогового окна «Открыть или сохранить». Тогда ваш пользователь все еще может нажать «открыть», чтобы просмотреть его на странице.

Content-Disposition: attachment; filename=stuff.pdf
1 голос
/ 22 февраля 2010

Возможно, это также связано с действием, назначенным типу mime документа. Например, в FF это действия могут быть установлены .

Но, конечно, вам также необходимо убедиться, что сервер передает правильный тип MIME .

0 голосов
/ 02 марта 2010

Похоже, он не заканчивал запрос. Решение состоит в том, чтобы поставить Response.End() в конце.

0 голосов
/ 01 марта 2010

Если вы щелкнете правой кнопкой мыши и сохраните, как это сохранить как правильный PDF, вы можете посмотреть? Я подозреваю, что вы пишете PDF неправильно или ваш заголовок неправильный.

0 голосов
/ 25 февраля 2010

У нас возникла эта проблема, когда PDF-файл, отображаемый как встроенный, находится под контролем исходного кода и доступен только для чтения. Мы используем VSS для контроля исходного кода, и когда мы развернули PDF-файл, он отображался точно так же, как на скриншоте. Затем мы поместили свежую копию PDF, тогда она работала просто отлично. Возможно, проверьте, доступен ли файл PDF только для чтения, и если да, попробуйте удалить атрибут readonly и повторите попытку.

Надеюсь, это поможет.

Спасибо

Радж

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