Отображение изображений и документов с использованием asp.net в нескольких браузерах - PullRequest
0 голосов
/ 02 февраля 2010

У меня есть веб-страница с именем DisplayBinaryData.aspx. Цель этой страницы - показать / загрузить любое слово, Excel, PDF или изображения. Я вызываю эту веб-страницу и передаю идентификатор моей сущности BinaryData, используя строку запроса. Сущность BinaryData содержит файл, имя файла и тип содержимого, загруженные с использованием файла asp.net fileUploadControl. Код в загрузке страницы ниже:

    BinaryData obj = GetBinaryObjectById(int.Parse(Request.QueryString["id"]));

    Response.Clear();

    Response.BufferOutput = true;

    Response.AddHeader("Content-Disposition", "attachment; filename=" + obj.FileName);

    Response.ContentType = obj.FileContentType;

    Response.BinaryWrite(obj.BinaryFile);

    Response.Flush();

    Response.Close();

    Response.End();

Этот код отлично работает в IE, но не работает при запуске в FireFox. IE предлагает пользователю либо сохранить, либо открыть содержимое. FireFox также запрашивает пользователя, но диалоговое окно не может сохранить или открыть какой-либо контент. При выполнении этого в Google Chrome - диалоговое окно отсутствует, оно начинает загружать контент автоматически.

Мой вопрос: мне нужно, чтобы этот код был совместим с FireFox - есть предложения?

1 Ответ

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

Поведение, которое вы упоминаете в Chrome, просто соответствует настройкам по умолчанию для Chrome. Вы можете изменить их, перейдя на вкладку «Под капотом» окна «Параметры». Затем установите флажок «Спросить, где сохранить каждый файл перед загрузкой».

У вашего obj.FileName есть пробел в имени? Смотрите этот пост на " Content Disposition " в разных браузерах.

Содержание размещения в разных браузеры

Сегодня мне пришлось решить вопрос, где в разных браузерах подано динамически генерируемая загрузка работала совсем иначе / совсем

У нас был xml-файл с пользовательское расширение, скажем .mj, которое было обслуживается ASP. HTTP Заголовок имел расположение контента заголовок и тип ответа установлены.

Response.AddHeader "Content-Disposition", "attachment; filename=""our file.mj"""
Response.ContentType = "text/xml"

Это нормально работало в Internet Explorer, файл был загружен как «наш файл.mj». Однако FireFox и Chrome действовали очень иначе, в FireFox файл был скачал как просто "наш", так и Chrome как "наш файл.xml". В FireFox это кажется, что проблема вызвана имея пробел в имени файла, это сообщение на форуме от funkdaddu помогло мне это, так что, удалив пространство FireFox Теперь можно загрузить файл как "Ourfile.mj". ...

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