IMHO.WS

IMHO.WS (https://www.imho.ws/index.php)
-   Веб-программирование (https://www.imho.ws/forumdisplay.php?f=29)
-   -   Какой header нужен? (https://www.imho.ws/showthread.php?t=70029)

Fiery_Fenix 03.10.2004 22:14

Какой header нужен?
 
Собственной какой хидер выдать браузеру чтобы он открыл например пдф-ку или вордовский файл в _своем_окне_?
Парочка header("Content-type: ... "); readfile(...); не дает нужный результат :(
ЗЫ Где можно почитать про хидеры, в ПХП мануле там ничерта не написано толком.

Sych 03.10.2004 23:21

100% гарантии ты не получишь - потому что не у всех пользователей будет стоять word или акробат реадер - для того что бы браузер окрывал в своем окне он должен понимать mime типы файлов и правильно их обрабатывать.

про хидеры смотри кас на протокол http

Hubbitus 03.10.2004 23:29

Цитата:

Fiery_Fenix:
Парочка header("Content-type: ... "); readfile(...); не дает нужный результат
Почему же, очень даже дает нужный результат, если тип указан правильно. Для большинства случаев этого вполне достаточно. С другой стороны Вы должны быть уверены что браузер "знает" как открывать этот тип.

Почитать соответственно в стандарте RFC-2616 (ну или ищите переводы)

Fiery_Fenix 04.10.2004 01:19

Сенкс буду штудировать RFC...
Цитата:

Hubbitus:
Почему же, очень даже дает нужный результат, если тип указан правильно
Хм... может у меня браузер глючит (ИЕ6.0), но на application/pdf и пдф-ку соответственно он выдает пустой экран (ридер поставлен, версии 6.0), а на application/msword и док-файл дает запрос на сохранить/открыть файл :confused:

is_absent 04.10.2004 10:26

посмотри тут
_http://www.imho.ws/showthread.php?t=68438

вот что тебе нужно для PDF
header("Content-type: application/octet-stream");

Fiery_Fenix 04.10.2004 13:33

Не катит... Мне как раз наоборот надо, чтоб он открыл документ в _окне_браузера_, а с header("Content-type: application/octet-stream"); он предлагает открыть/сохранить. При чем сохранять - сохраняет, а открыть не может :(

is_absent 05.10.2004 07:14

Fiery_Fenix
можешь выложить скрипт?

AleXXXSoft 05.10.2004 09:04

я это делаю так:
Код:

$f="ИМЯ_ФАЙЛА_ЗДЕСЬ_С_ПУТЕМ";
$d="ИМЯ_ФАЙЛА_БЕЗ_ПУТИ";
$l=@filesize($f);
@header("Cache-control: private");
@header("Content-type: application/x-unknown"); // ЗДЕСЬ МОЖНО УКАЗАТЬ СВОЙ ТИП
@header("Content-length: $l");
@header("Content-Disposition: inline; filename=".$d);
@readfile($f);


Fiery_Fenix 06.10.2004 01:30

Собственно код:
PHP код:

if ($_GET["action"]=="show"){
    
$vopr=mysql_query("SELECT type, name, filename FROM texts WHERE text_id='$text_id'");
    
$row=mysql_fetch_array($vopr);
    
$type=$row["text_type"];
    
$source=$path."/doc/".$row["filename"];
    
$l=@filesize($f);
    @
header("Cache-control: private");
    @
header("Content-type: $type");
    @
header("Content-length: $l");
    @
header("Content-Disposition: inline; filename=".$row["filename"]);
    @
readfile($source);} 

А вот чего это чудо на pdf выдает:
<p>&nbsp;</p>
ЗЫ Может апачь у меня криво настроен?, или ИЕ...
ЗЗЫ Опера даже запускает Акробат ридер но тот матерится что не может найти какой-то handled window и убивается, вместе с оперой :)

is_absent 06.10.2004 07:21

Цитата:

PHP код:

  $l=@filesize($f); 


откуда переменная $f взялась? :-)

почитай
_http://www.fpdf.org/en/FAQ.php#3
:) народ говорит, что это глюк IE

Fiery_Fenix 08.10.2004 00:43

Короче, забил я на это дело, поставил хидер аттачмента и пусть юзвери разбираются дальше сами :) Вывод один: ИЕ в своем репертуаре :(
Тему можно считать закрытой. Всем спасибо.


Часовой пояс GMT +4, время: 18:17.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.