2013-09-26 5 views
0

У меня есть доступ к файлу (скажем, изображение или pdf) с другого сервера через олицетворение в asp.net C#.Открыть байт [] as Image/PDF в новой вкладке или окне

Проблема заключается в том, что это олицетворение находится в другой библиотеке, и файл возвращается как массив байтов.

Теперь я хочу открыть этот массив байтов изображения/pdf в новой вкладке или окне.

Пример: Предположим, что я выбрал просмотр файла «file1.tiff», запрос перейдет на соответствующий сервер с соответствующими учетными данными для поиска этого файла. если файл найден (основной мотив), он преобразует этот файл «file1.tiff» в байтовый массив (скажем, буфер) и вернет этот файл. Это получено «byte[] image». Теперь я хочу открыть это изображение в новой вкладке или окне для просмотра без запроса диалогового окна «Открыть Сохранить или Отменить».

byte[] image= impFile.ViewFile(fileName); 

Я уже пробовал:

Response.Clear(); 
Response.ClearContent(); 
Response.ClearHeaders(); 
Response.ContentType = "image/tiff";  
Response.AddHeader("content-length", image.Length.ToString()); 
Response.BinaryWrite(image); 
Response.Flush();Response.End(); 

Но есть две проблемы: -

  1. Он просит "Открыть Сохранить или отменить".

  2. Не открывается в новом окне, но открывается приложением по умолчанию, назначенным для этого расширения.

ответ

0

Вы можете использовать метод HttpResponse.WriteFile для прямого отправки потока клиенту. Записывает указанный файл непосредственно в выходной поток ответа HTTP.

Вы можете создать IHttpHandler для отправки потока, таким образом, избегайте круга жизни страницы, повышайте производительность. Вот Link

+0

Я уже использовал оба. У меня установлен только Internet Explorer 8, и он не приносит мне никакой пользы. Благодаря.. –

Смежные вопросы