Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Фотоальбом 
:(
    Опции темы
Hellka
Дата 2.2.2006, 22:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 58
Регистрация: 2.2.2006

Репутация: нет
Всего: нет



Еще вопросик. Начал писать что-то типа онлайн-фотоальбома...вот код
<html>

<?php
$ImgDir="img";
@mkdir($ImgDir,666);
if(@$doUpload)
{
if(file_exists($File))
{
Copy($File,"$ImgDir/".basename($File_name));
}
}
$d=opendir($ImgDir);
$Photos=array();
while(($e=readdir($d))!==false)
{
if(!ereg("^(.*)\\.(gif|jpg|png)$",$e,$P)) continue;
$path="$ImgDir/$e";
$sz=GetImageSize($path);
$tm=filemtime($path);
$Photos[$tm]=array(
'time'=>filemtime($path),
'name'=>$e,
'url'=>$path,
'w'=>$sz[0],
'h'=>$sz[1],
'wh'=>$sz[3]
);
}
krsort($Photos);
?>
<body>
<form action=photo.php method=POST enctype=multipart/form-data>
<input type=file name=File><br>
<input type=submit name=doUpload value="Закачать фоту!">
</form>
<?
foreach($Photos as $n=>$Img) { ?>
<img src=<?=$Img['url']?>

alt="Добавлена <?=date("d.m.Y H:i:s",$Img['time'])?>"
>
<?}?>

</body>
</html>


пока этот сценарий только грузит фоты на сервер и выдает их на эту страницу...вопрос такой.....хочется сделать чтобы он выдавал на страницу фотки-сылки в маленьком размере, чтобы нажав на них, можно было уже на новой странице поучить оригинальное изображение.....как их сделать маленькими я вроде дагадываюсь - указать размеры в теге <img src=<?=$Img['url']?> , а как их сделать ссылками...и можно ли будет сделать их ссылками на них же самих???(фота загружается в одном экземпляре и сохраняется в каталоге img на сервере)

PM MAIL   Вверх
TIGERоX
Дата 3.2.2006, 01:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


начинающий...
*


Профиль
Группа: Участник
Сообщений: 59
Регистрация: 7.9.2005

Репутация: нет
Всего: 1



конечно можно
пример
Код

<a href="<?=$Img['url']?>" border=0px><img src="<?=$Img['url']?>" style="width:50px;height:50px;"></a>


PM MAIL   Вверх
R.M.
Дата 3.2.2006, 01:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Анархист
****


Профиль
Группа: Участник
Сообщений: 2164
Регистрация: 8.6.2005
Где: Питер

Репутация: -2
Всего: 30



Hellka
Цитата(Hellka @ 2.2.2006, 23:08 Найти цитируемый пост)

как их сделать маленькими я вроде дагадываюсь - указать размеры в теге <img src=<?=$Img['url']?>

Это очень плохой способ - вес картинки не изменяется, ты представь сколько будет по времени грузиться картинок 20 общим объёмом мегабайта 4 (это в лучшем случае наверно)..... советую при аплоаде картинок через скрипт делать их маленькие копии


--------------------
Помнишь как бодрили дискотеки прошлого века? Теперь стул, компьютер и нету человека.

Nokia LifeStyle - Всё для смартфонов Nokia 
PM MAIL WWW ICQ   Вверх
Ciber SLasH
Дата 3.2.2006, 01:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1813
Регистрация: 9.11.2004
Где: С.-Петербург

Репутация: 3
Всего: 67



Кстати эта тема уже не один раз обсуждалась, поиск — рулит...
PM   Вверх
PARROT
Дата 3.2.2006, 09:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: 23
Всего: 50



Hellka, пользуемся кнопкой КОД (отредактируйте пожалуйста свое сообщение) и поиском, и прикрепленными темами.


--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
Hellka
Дата 3.2.2006, 16:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 58
Регистрация: 2.2.2006

Репутация: нет
Всего: нет



спасибо за советы....я тут реализовал жэту штуку немного другим способом, функция copy на серваке полчему-то отказалась работать, хотя у меня в апаче всё было путем вот код:
Код

html>
<body>
<?php
$max_image_width=1000;
$max_image_height=1000;
$max_image_size=1024*1024;
$valid_types=array("gif","jpeg","png","jpg");
$uploaddir = "/home/test1.ru/www/upload/img/";
$uploadfile = $uploaddir.$_FILES['userfile']['name']; 

if(isset($_FILES["userfile"]))
{
if(is_uploaded_file($_FILES['userfile']['tmp_name']))
{
$filename=$_FILES['userfile']['tmp_name'];
$ext=substr($_FILES['userfile']['name'],1+strrpos($_FILES['userfile']['name'],"."));
if(filesize($filename)>$max_image_size)
{
echo "Ошибка! Размер файла больше 128К";
}
elseif(!in_array($ext,$valid_types))
{
echo "Ошибка! Неправильный тип файла.";
}
else
{
$size=GetImageSize($filename);
if(($size)&&($size[0]<$max_image_width)&&($size[1]<$max_image_height))
{
if(@move_uploaded_file($filename, $uploadfile)) 
{
echo "Файл загружен"; 
echo '
<form enctype="multipart/form-data" action="upload.php" method="post">
<input type="hidden" name="max_size_file" value="128000">
Отправить данный файл: <input type="file" name="userfile"><br>
<input type="submit" value="Отправить">
</form>'; 


}
else
{
echo "Не загружен!";
}}
else
{
echo "Не правильные параметры файла";
}
}
}
else
{
echo "Ошибка!";
}
}
else
{
echo '
<form enctype="multipart/form-data" action="upload.php" method="post">
<input type="hidden" name="max_size_file" value="128000">
Отправить данный файл: <input type="file" name="userfile"><br>
<input type="submit" value="Отправить">
</form>';
}
?>


</body>    
</html>

ну тоесть из обычной формы значения передаются уже этому сценарию...здесь возникли трудности...да файла переносятся на сервак и отображаются всё нормально, но при попытке сделать отображения сразу нескольких фоток,т.е. занес одну она появилась, занес вторую она появилась рядом, я столкнулся с трудностями.....а именно попробовал сделать перед выводом как в первом варианте создание массива $Photos и далее использование
foreach, но после этого нововведения сценарий отказался работать. он просто заносил фоты на сервак, но уже САМ каким-то образом менял путь размещения файла(просто кидал их в корень с пхп файлом и никак не признавал адрес в $uploaddir = "/home/test1.ru/www/upload/img/").......и по-нескольку из тоже вывести не удалось сценарий также выдавал по одной фоте и приповторном запуске просто заменял их....в чем моя ошибка, если кто-то может напишите фрагмент, который будет выдавать фоты которые заносятся на сервак.....просто может моя идея верна, но я напутал с ключами.
PM MAIL   Вверх
CoderUA
Дата 4.2.2006, 23:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 33
Регистрация: 17.10.2005
Где: Ukraine

Репутация: нет
Всего: нет



Могу предложить следующее для создания миниатюрок:
Код

// Создание миниатюр фото для текущего альбома
        $file_img = "./albums/".$mydirectory."/".$photos[$i]['file_name'];
        $size = GetImageSize($file_img);
     $width = $size[0] / $ratio;
     $height = $size[1] / $ratio;
     $format = $size[2]; //1 = GIF, 2 = JPG, 3 = PNG, 5 = PSD, 6 = BMP

//    $my->PATH_SITE.$my->PATH_WWW."/".$my->PATH_GALLERY."/albums/".$folder."/".$my->THUMB_DIR."/".$my->THUMB_PREFIX.$photo;
$currthumbfile = "./albums/".$mydirectory."/".$my->THUMB_DIR."/".$my->THUMB_PREFIX.$photos[$i]['file_name'];
     //echo $currthumbfile;
     if (! file_exists($currthumbfile))
     {
       //GIF format is not supported anymore by GD lib...
         if ($format == 2) //JPG
           $im = imagecreatefromjpeg(str_replace(" ", "%20", $full_path));
         else if ($format == 3) //PNG
           $im = imagecreatefrompng(str_replace(" ", "%20", $full_path));
         if (!$im)
         {
           $currthumbfile = str_replace(" ", "%20", $full_path);
         }
         else
         {
           Imagejpeg($im, $currthumbfile, $quality);
           ImageDestroy($im);
         }

Добавлено @ 23:02
А насчет загрузки файлов могу предложить приблизительно такое:

Код

// Проверка на существование файла
    if (is_file($uploadfile))
       echo $my->err_to_html(150);// файл существует
    else // Файл не существует - можно копировать 
    {
       if (move_uploaded_file($_FILES['file_img']['tmp_name'], $uploadfile))
       {
       
       }
       else echo $my->err_to_html(151); // не могу загрузить файл на сервер
    }

PM MAIL ICQ   Вверх
Ciber SLasH
Дата 5.2.2006, 02:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1813
Регистрация: 9.11.2004
Где: С.-Петербург

Репутация: 3
Всего: 67



2Hellka:
Предпологаю, что ты в новом варианте создал какую-то функцию и в ней забыл прописать global $uploaddir, $uploadfile;
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0565 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.