Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Функция fpassthru и отображение графического файла
 
 автор: Valick   (02.01.2007 в 01:24)   письмо автору
 
 

У меня
<?
$file = fopen("file.jpg","rb");
if (!$file)
{
echo ("Ошибка открытия файла");
}
else
{
fpassthru ($file);
fclose ($file);
}
?>
Выводит графический файл только в IE, в остальных браузерах распечатывает как текстовый файл. А теперь собственно говоря вопрос - почему?

   
 
 автор: targa   (02.01.2007 в 01:56)   письмо автору
 
   для: Valick   (02.01.2007 в 01:24)
 

Попробуйте вот так:

<?php

$lcFName 
"file.jpg";
$file fopen($lcFName,"rb");
if (!
$file) echo ("Ошибка открытия файла");
else
{
  
header("Content-Disposition: attachment; filename=".$lcFName);
  
header("Content-type: image/jpeg");
  
fpassthru ($file);
  
fclose ($file);
}

?>


Данный код предложит юзеру открыть/сохранить файл.
Если хотите просто вывод в браузер - уберите первый header.

   
 
 автор: Valick   (02.01.2007 в 01:59)   письмо автору
 
   для: targa   (02.01.2007 в 01:56)
 

Спасибо, пойду пробовать ;)
И если получицца лягу спокойно спать!

   
 
 автор: targa   (02.01.2007 в 02:07)   письмо автору
 
   для: Valick   (02.01.2007 в 01:59)
 

Ну я не запускал, но должно работать. Так что спокойной ночи и с НГ :)

ЗЫ: меня на программирование 1.01 не хватило :)

   
 
 автор: Valick   (02.01.2007 в 02:12)   письмо автору
 
   для: Valick   (02.01.2007 в 01:59)
 

Ещё вопрос в догонку, в Опере картинка выводиться посередине фрейма, в чём фишка? все остальные послушно выводят в левый верхний угол. Видать не лягу я спать сегодня)))

П.С. В том что всё должно работать я не сомневался, но всегда есть это хреново но...
Ещё раз спасибо, тему заголовков я упустил из виду

   
 
 автор: targa   (02.01.2007 в 03:17)   письмо автору
 
   для: Valick   (02.01.2007 в 02:12)
 

У каждого из трех основных браузеров свои установки "по умолчанию". Поэтому лучше ничего не оставлять на их умолчания а явно задавать параметры.

В данном конкретном случае проще фрейму прописать класс в CSS-файле (или привязать CSS-стиль через ID).

   
 
 автор: Valick   (02.01.2007 в 10:37)   письмо автору
 
   для: targa   (02.01.2007 в 03:17)
 

Около года назад читал, что и с таблицами стиля не всё гладко, для разных браузеров (даже чуть ли не для разных версий) приходилось писать разные CSS. Сейчас, я так понимаю, положение исправляется. А по поводу фрейма, всё равно я от него буду отказываться, в моём случае он удобен, но опять таки есть одно но... Если в кратце у меня во фрейме выводиться результат выполнения PHP скрипта, а следом распечатывается его листинг, только вот размер фрейма (высота = 1000 ,ширина = 100%) задаётся заранее, а это облом, скрипты то разные по длинне. (Просто ещё один маленький нюанс файл с фреймом чистый HTML, думаю его можно будет завернуть в PHP считать количество строк, вычислять высоту фрейма и подставлять, но тогда теряется весь смысл поскольку прийдётся перезагружать страницу целеком... скорее всего откажусь от фрейма совсем)

   
 
 автор: cheops   (02.01.2007 в 13:46)   письмо автору
 
   для: Valick   (02.01.2007 в 02:12)
 

>Ещё вопрос в догонку
Под новый вопрос лучше заводить новую тему.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования