Ах эти картинки...

  • Автор темы Автор темы Chatof
  • Дата начала Дата начала

Chatof

Guest
Ах эти картинки...

Я хостюсь, на бесплатном сервисе holm.ru . После аплода картинок я их читаю из папки. Но расширение jpg он нивкакую не отображает. ва дня бился почему так, когда на третий загрузил gif файл- и он прекрасно отобразился. Вопрос в следующем. Можно ли мне после получения файла из формы просто переименовывать в расширение gif. То есть был файл la.jpg, а стал la.gif.
Или придёться с GD возиться. Или вообще заставить загружать админов, только файлы с расширенм gif.
 
расширение jpg != JPG != Jpg != jPG

и т.д.
 
yugene-он это сервер...
Breeze- Ты думаешь, что если был файл с расширением *JPG и я его сохранил под расширением jpg, то он не будет отобрадаться???
 
Chatof

если файл file.JPG а вызов file.jpg -- то не будет.. Это справедливо для *nix систем.. holm к таким как раз относится, если не ошибаюсь
 
Автор оригинала: Chatof
yugene-он это сервер...
Сервер и не должен отображать картинки! Этим занимается браузер.

Что вообще должно происходить? Из твоего вопроса не понятно, причем здесь вообще PHP.
 
yugene

сервер отдает картинку браузеру. Если он не знает что отдать или ему запрещено отдавать, то браузер ничего не получит
 
Автор оригинала: Breeze
yugene
сервер отдает картинку браузеру. Если он не знает что отдать или ему запрещено отдавать, то браузер ничего не получит
спасибо, я в курсе ;)

если честно, по приведенной формулировке вопроса сложно определить, что и где не работает. может, с правами что напутано, может, скрипт кривой, может, файлы на самом деле читаются, но в виде HTML-я выводится не то, что нужно. причин может быть масса.
 
IBSN-ошибка в том, что картинка не отображеться. Аплоадит всё правильно=файл загружаеться. Но стоит такая проверка на расширение файла перед загрзкой на сервер
PHP:
if(eregi("gif$",$_FILES['photo']['name'][$i])) $name=$name.".gif";
elseif(eregi("jpg$",$_FILES['photo']['name'][$i])) $name=$name.".jpg";
elseif(eregi("png$",$_FILES['photo']['name'][$i])) $name=$name.".png";
else continue;
В этом коде первоначально $name берёться рандомно в цифрах. А потом идёт проверка на расширение. Это я в цмкле делаю, т.к. там пять файловых полей.
Права на папку в которую аплоад делаю-755. После закачки права файла-644.
Breeze-вызов происходит после считывания элементов каталога. И вызов идёт по имени файла, которое получено после чтения каталога.
 
Попробуй в папке со скриптом "upload.php" создать файл
.htaccess и чебы в нем было:
CharsetDisable On
 
sportsmenen-чё-то ни помогло... Может хостинг такой???
Когда перед выводом на экран каринки ставлю уловие
PHP:
if(!file_exists("./photo/".$top."/".$photos[$page])) echo "NIXT!!!";
else
{
echo "<center><img  src=./photo/".$top."/".$photos[$page]."  border=0 ></center>";
}
То он не вывдоит NIXT
Пробовал пути src по разному, но всё равно не отображаеться...

-~{}~ 25.02.05 10:41:

А может так сделать?
image.php
PHP:
<?
$file=ImageCreateFromJpeg("./photo/".$top."/".$photos[$page]);
header ("Content-type: image/jpeg");
Imagejpeg($file);
ImageDestroy($file);
?>

А потом в теге img прописать src=image.php

-~{}~ 25.02.05 17:42:

УРА!!! Вроде заработало!!! Если кто то столкнёться с этой проблемой, то выход такой. Сначала лучше всю тему прочесть.
Значит делаю переменныу
PHP:
$image="./photo/".$top."/".$photos[$page];

Файл image.php выглядит примерно так
PHP:
<? 
$file=ImageCreateFromJpeg($image); 
header ("Content-type: image/jpeg"); 
Imagejpeg($file); 
ImageDestroy($file); 
?>

На странице, на который должны фотки отображаться прописываю так
PHP:
echo "<img src=image.php?image=".$image.">";
 
Сверху