Установка Response.ContentType = "image / tiff" в asp.net 1.1, и IE7 не отображает файлы tif - PullRequest
0 голосов
/ 14 ноября 2008

У меня есть приложение Asp.Net 1.1, которое использует следующий код для записи файла изображения на всплывающую веб-страницу.

    Response.ContentType="image/tiff"   'Only for Tif files
    Dim objStream As Object
    objStream = Server.CreateObject("ADODB.Stream")
    objStream.open()
    objStream.type = 1
    objStream.loadfromfile(localfile)
    Response.BinaryWrite(objStream.read)

Я тестирую это с файлами TIF. Файлы отображаются правильно в IE6 и Safari, но в IE7 они не отображаются, и кажется, что ничего не возвращается на веб-страницу. Файлы с расширениями jpg, gif отображаются правильно. В чем может быть проблема здесь?

Ответы [ 3 ]

1 голос
/ 14 ноября 2008

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

Как минимум, загрузите TIFF, выберите первый кадр (страницу), сделайте DrawImage в новом растровом изображении, сохраните растровое изображение в виде JPG в потоке памяти и отправьте его в Response.

Если вы не знакомы с манипулированием изображениями в .NET GDI + или это звучит сложно, пожалуйста, обратитесь к http://www.bobpowell.net/faqmain.htm за советом. Каждый из этих шагов можно выполнить всего несколькими строками кода. Если вы еще не знаете GDI +, его стоит изучить любому веб-разработчику. Это может сделать это «трудным (но безопасным) способом», стоящим только для образования. И если вы уже знаете, как, это займет не полчаса.

Если вы должны отображать многостраничные файлы TIFF и хотите, чтобы пользователь управлял отображением страниц, вам нужно создать пользовательский интерфейс для установки номера страницы. Если вы пытаетесь отобразить несколько TIFF-файлов на страницу, это может оказаться нетривиальным, поэтому попробуйте отобразить все страницы TIFF # 1 на первой веб-странице или разрешить им просматривать последующие страницы TIFF, ссылаясь на другую веб-страницу с Предыдущие / следующие кнопки страницы TIFF. Это должна быть общая страница, которая принимает имя файла и номера текущей страницы (кнопки «предыдущий / следующий» будут указывать на себя с +/- одним номером страницы) в качестве параметров URL.

Если вы знаете, что вы будете показывать только текстовые документы вместо фотографий, попробуйте отправлять в браузер однокадровые GIF-файлы вместо TIFF-файлов, чтобы уменьшить Jpegginess текста. Но до предупреждения - фотографии могут выглядеть очень плохо в GIF.

0 голосов
/ 14 ноября 2008

Да, попробовал только сейчас. Не работает Это как-то связано с тем, что tiff имеет 4 буквы вместо 3. Я где-то читал, что IE7 не поддерживает 4-буквенные расширения.

0 голосов
/ 14 ноября 2008

Вы пытались установить Content-Disposition на Inline?

Response.AppendHeader("Content-Disposition", "inline");
...