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

Chatof

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

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

Breeze

goshogun
Команда форума
Партнер клуба
расширение jpg != JPG != Jpg != jPG

и т.д.
 

Chatof

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

Breeze

goshogun
Команда форума
Партнер клуба
Chatof

если файл file.JPG а вызов file.jpg -- то не будет.. Это справедливо для *nix систем.. holm к таким как раз относится, если не ошибаюсь
 

yugene

Отошел от дел
Автор оригинала: Chatof
yugene-он это сервер...
Сервер и не должен отображать картинки! Этим занимается браузер.

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

Breeze

goshogun
Команда форума
Партнер клуба
yugene

сервер отдает картинку браузеру. Если он не знает что отдать или ему запрещено отдавать, то браузер ничего не получит
 

yugene

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

если честно, по приведенной формулировке вопроса сложно определить, что и где не работает. может, с правами что напутано, может, скрипт кривой, может, файлы на самом деле читаются, но в виде HTML-я выводится не то, что нужно. причин может быть масса.
 

Chatof

Guest
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-вызов происходит после считывания элементов каталога. И вызов идёт по имени файла, которое получено после чтения каталога.
 

sportsmenen

Guest
Попробуй в папке со скриптом "upload.php" создать файл
.htaccess и чебы в нем было:
CharsetDisable On
 

Chatof

Guest
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.">";
 
Сверху