За последние 24 часа нас посетили 18155 программистов и 1700 роботов. Сейчас ищут 1697 программистов ...

Загрузка фото.

Тема в разделе "PHP для новичков", создана пользователем Борис, 21 ноя 2006.

  1. Борис

    Борис Активный пользователь

    С нами с:
    1 июн 2006
    Сообщения:
    92
    Симпатии:
    0
    Адрес:
    Питер
    Спасибо всем большое! Во всём разобрался!
     
  2. Во! Уважаю. Вместо полтонны пустой полтовни на форуме - взял, да и разобрался.
    xak, бери пример
     
  3. Борис

    Борис Активный пользователь

    С нами с:
    1 июн 2006
    Сообщения:
    92
    Симпатии:
    0
    Адрес:
    Питер
    Добился того, что файлы загружаются и показываются всё как надо.

    Следующий вопрос который у меня возник - можно ли например сделать так, что бы у них был максимальный горизонтальный размер, а - то загрузит кто нибудь там 4000*4000 пикселей фотку её не посмотреть будет ) Пробую загнать в таблицу - невыходит ( Посоветуйте...

    вот:
    Код (Text):
    1.  
    2.  
    3. echo "<table width=400 border=5>";
    4. echo "<tr>";
    5. echo "<td>";
    6. if ($handle = opendir($up_dir))
    7.                   {            
    8.                      while (false !== ($file = readdir($handle)))
    9.                         {
    10.                            echo "<a href=$up_dir/$file>$file</a><br>";
    11.                            echo "<img src=$up_dir/$file><br /><br /><br />";
    12.                         }
    13.                      closedir($handle);
    14.                   }
    15.  
    16.  
    17. echo "</table>";
     
  4. можно попросить пояснить смысл фразы
    ?
     
  5. Борис

    Борис Активный пользователь

    С нами с:
    1 июн 2006
    Сообщения:
    92
    Симпатии:
    0
    Адрес:
    Питер
    как сделать так, чтобы они выводились в таблице определённой ширины?


    И ещё почему-то появляется странные две картинки, как будто они не загружаются над всеми остальными с самого верху... Отчего это?
     
  6. Ну, вообще-то, у тега img есть атрибут width.
    но мне такая идея хорошей не кажется. поскольку картинка шириной в 4000 пикселов будет грузиться чертову тучу времени и сожрет у посетителя бесову прорву трафика.
     
  7. Борис

    Борис Активный пользователь

    С нами с:
    1 июн 2006
    Сообщения:
    92
    Симпатии:
    0
    Адрес:
    Питер
    Хотелось сделать так, чтобы они выводились аккуратно в таблицу определённой ширины и были не больше неё, а при нажатиина них выводились в полном размере
     
  8. *тяжело вздохнув*
     
  9. можно после того, как картинка была загружена, делать скриптом её уменьшенную копию. как раз для показа в таблице.

    как сделать уменьшенную копию, можешь поискать здесь на форуме - писалось очень много раз.
     
  10. Борис

    Борис Активный пользователь

    С нами с:
    1 июн 2006
    Сообщения:
    92
    Симпатии:
    0
    Адрес:
    Питер
    с этим я не спорю :) , но как можно тут использовать сей факт?
     
  11. а ты попробуй. это будет быстрее, чем я буду объяснять.
    Лучше один раз увидеть, чем сто раз услышать, как говорит нам народная мудрость
     
  12. Борис

    Борис Активный пользователь

    С нами с:
    1 июн 2006
    Сообщения:
    92
    Симпатии:
    0
    Адрес:
    Питер
    Дак я так и не понял что ты предлагаешь сделать...
     
  13. Борис

    Борис Активный пользователь

    С нами с:
    1 июн 2006
    Сообщения:
    92
    Симпатии:
    0
    Адрес:
    Питер
    Каким, напиши плз. Буду оч признателен...
     
  14. xak2

    xak2 Guest

    Вот как сделано у меня:
    PHP:
    1. <?php
    2.                     if ($handle = opendir($up_dir))
    3.                         {
    4.                             while (false !== ($file = readdir($handle)))
    5.                                 {
    6.                                     if ($file != "." && $file != ".." && $file != "Thumbs.db")
    7.                                         {
    8.                                             $info = pathinfo($file);
    9.                                             if ($info['extension'] == "jpg" || $info['extension'] == "gif")
    10.                                                 {
    11.                                                     echo 'Код: <b>&lt;img src="'.$up_dir.'/'.$file.'"&gt;</b><br><a href=admin.php?module=files&action=delete&file='.$file.'>[ УДАЛИТЬ ]</a><br><br>'
    12.                                                     ."<a href=$up_dir/$file><img src=$up_dir/$file width=100 border=\"0\"></a><br><br>";
    13.                                                 }
    14.                                             else
    15.                                                 {
    16.                                                     echo "$file<br><br>";
    17.                                                 }
    18.                                         }
    19.                                 }
    20.                             closedir($handle);
    21.                         }
    22. ?>
    Просто задай картинке ширину <img src="$file" width="Ширина таблицы"> А высоту он сам определит, но тогда очень большие картинки буду грузится также как и в обычном размере. А маленькие наооборот растягиваться.
     
  15. Борис

    Борис Активный пользователь

    С нами с:
    1 июн 2006
    Сообщения:
    92
    Симпатии:
    0
    Адрес:
    Питер
    В строчке
    PHP:
    1.  
    2. if ($file != "." &amp;&amp; $file != ".." &amp;&amp; $file != "Thumbs.db")
    он пишет Parse error: parse error, unexpected ';' in D:\wwwroot\okrugin\posting\foto.php on line 53

    А вроде всё приавильно... С чем мб связано?
     
  16. С тем, что форум при раскраске кода заменяет некоторые символы.
     
  17. Борис

    Борис Активный пользователь

    С нами с:
    1 июн 2006
    Сообщения:
    92
    Симпатии:
    0
    Адрес:
    Питер
    Пасиб. В очередной раз разобрался!
     
  18. DarkElf

    DarkElf Активный пользователь

    С нами с:
    22 окт 2006
    Сообщения:
    1.632
    Симпатии:
    0
    PHP:
    1.  
    2. <?php
    3. if(!$_FILES['upload_table']['tmp_name']){print("Файла не передано."); exit();};
    4. if($_FILES['upload_table']['size'] > '6000'){print("Размер файла превышает допустимый: ".$_FILES['upload_table']['size']); exit();};
    5. if(!ereg("^image",$_FILES['upload_table']['type'])){print("Передан недопустимый тип файла"); exit();};
    6. $fname = time().'_'.md5($_FILES['upload_table']['name']);
    7. $type_str = substr($_FILES['upload_table']['type'],6,10);
    8. echo $type_str."<br>";
    9. if(ereg("(gif)",$type_str)){$type = 'gif';}
    10. elseif(ereg("(jpeg)",$type_str)){$type = 'jpg';}
    11. elseif(ereg("(jpg)",$type_str)){$type = 'jpg';}
    12. elseif(ereg("(png)",$type_str)){$type = 'png';}
    13. else{print("Тип файла не опознан."); exit();};
    14. $fname .= '.'.$type;
    15. copy($_FILES['upload_table']['tmp_name'],$fname);
    16. ?>
    17.  
    Вроде тесты нормальные.

    Народ!
    1) что еще можно подработать в плане безопасности?
    2) никакие графические типы не упустил?

    заранее спсб
     
  19. Anonymous

    Anonymous Guest

    DarkElf, проверь на файлике с именем gif.jpeg
     
  20. xak2

    xak2 Guest

    png нежелательный формат для ИЕ, т.к. у ИЕ нету ПНГ енкодера и он непонимает такие штуки как альфа, опасити и т.д. Но, но можно воспользоваться яваскриптом.
     
  21. Anonymous

    Anonymous Guest

    xak2, не неси чушь.
     
  22. DarkElf

    DarkElf Активный пользователь

    С нами с:
    22 окт 2006
    Сообщения:
    1.632
    Симпатии:
    0
    Горбунов Олег

    нормально. тип pjpeg покрывается регулярным выражением

    PHP:
    1. ereg("(jpeg)",$type_str))
    xak2

    мм, а где речь о том, что png не приспособлен для ИЕ? решается задача закачки файла на сервер, проверки его размера и типа на основании переданных данных, переименование и сохранение с соответствующим типу расширением.

    все.
     
  23. DarkElf

    DarkElf Активный пользователь

    С нами с:
    22 окт 2006
    Сообщения:
    1.632
    Симпатии:
    0
    во всяком случае мой апач (тест под виндой, апач - какая-то версия двойки)
     
  24. Anonymous

    Anonymous Guest

    DarkElf, ты проверил? Или предположил, что это так?
     
  25. DarkElf

    DarkElf Активный пользователь

    С нами с:
    22 окт 2006
    Сообщения:
    1.632
    Симпатии:
    0
    Горбунов Олег

    проверил..
    картинка - серый квадрат, созданный в ms paint и сохраненный с расширением jpeg