За последние 24 часа нас посетил 18541 программист и 1623 робота. Сейчас ищет 1591 программист ...

Загрузчик изображений

Тема в разделе "PHP для новичков", создана пользователем MadCrank, 9 сен 2008.

  1. MadCrank

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

    С нами с:
    5 сен 2008
    Сообщения:
    12
    Симпатии:
    0
    Пишу загрузчик изображений
    вот код

    PHP:
    1. <?php
    2. $uploaddir = 'Z:/home/mad.telenet.ru/www/foto/';
    3. $uploadfile = $uploaddir . basename($_FILES['userfile']['name']);
    4.  
    5. print "<pre>";
    6. if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
    7.  
    8. } else {
    9.    print "ошибка загрузки\n";
    10.  
    11. }
    12. print "</pre>";
    13. if (isset($_FILES['userfile']['name']))
    14. {$fotoname = $_FILES['userfile']['name'];}
    15. else
    16. {Print "Не могу определить имя загружаемого изображения ";exit;}
    17. if (isset($_FILES['userfile']['size']))
    18. {$fotosize=$_FILES['userfile']['size'];}
    19. else
    20. {Print " Не могу определить размер загружаемого изображения.";exit;}
    21.  
    22. $valid_images=array("jpg");// проверяем расширение файла
    23. $ext = strtolower(substr($fotoname, 1 + strrpos($fotoname, ".")));
    24. if (!in_array($ext, $valid_images)) {
    25. Print " ФАЙЛ НЕ загружен. Возможные причины:<br/> - разрешена загрузка только файлов с расширением jpg.<br/> - Вы пытаетесь загрузить не графический файл;<br/> - неверно введён адрес или выбран файл "; exit;}
    26.  
    27. ?>
    по идее не должен ничо пускать ни чо кроме .jpg ну или во всяком случае должен но все равно загружает всё как сделать чтоб всетаки загружал тока джпег
    и еще вопрос как переименовывать файл? атто я чото недогнал
     
  2. QQQ

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

    С нами с:
    21 ноя 2007
    Сообщения:
    538
    Симпатии:
    0
    1) а почему проверка имени стоит после аполдинга и копирования файла?
    2) я бы проверил ещё тип файла на всякий случай, является ли загружаемое нечто дейтсвительно jpg'ом
     
  3. admyx

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

    С нами с:
    14 мар 2008
    Сообщения:
    2.159
    Симпатии:
    1
    PHP:
    1.  
    2. <?php
    3. if (!in_array($ext, $valid_images))
    4. {
    5. Print " ФАЙЛ НЕ загружен. Возможные причины:<br/> - разрешена загрузка только файлов с расширением jpg.<br/> - Вы пытаетесь загрузить не графический файл;<br/> - неверно введён адрес или выбран файл ";
    6. exit();
    7. }
    8. else
    9. {
    10.   if (@move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
    11.   echo 'File uploading success';
    12.   } else {
    13.   exit("ошибка загрузки<br />");
    14.   }
    15. }
    16. ?>
    17.  
    Можно хотя бы сделать так......
     
  4. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    PHP:
    1. if (isset($_FILES['userfile']['name']))
    2.  {$fotoname = $_FILES['userfile']['name'];}
    Евгений Попов???
     
  5. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    Вот кстати, не тестил правдо
    PHP:
    1.  
    2. <?
    3. function is_img($img,$imgs) {
    4.     $exp=preg_replace("#(.+)\.#i","",$img);
    5.     if (in_array(strtolower($exp),$imgs)) return true;
    6.     return false;
    7. }
    8. function upload($tmp,$name,$dir) {
    9.  if (isset($tmp) && !empty($tmp)) {
    10.       if (is_img($name,array('jpg','jpeg'))){
    11.           if (move_uploaded_file($tmp,$dir.'/'.$name)) return true;
    12.       }
    13.  }
    14.  return false;
    15. }
    16. ?>
    17.  
     
  6. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    rename()
    http://php.ru/manual/