За последние 24 часа нас посетили 35008 программистов и 1714 роботов. Сейчас ищут 1134 программиста ...

input type='file'

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

  1. AlexALX

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

    С нами с:
    13 июн 2007
    Сообщения:
    294
    Симпатии:
    5
    Адрес:
    Киев
    Код (Text):
    1. <input type='hidden' name='MAX_FILE_SIZE' value='1024000'><input type='file' name='foto' class='textbox' value='".$data['foto']."'><input name='submit' type='submit' value='".$locale['love_018']."' method='post' class='button'>
    Код (Text):
    1. $foto = stripinput($_POST['foto']);
    2. if ($foto != "") {
    3.   $afolder = L_IMG;
    4. $image_types = array(
    5.         ".gif",
    6.         ".GIF",
    7.         ".jpeg",
    8.         ".JPEG",
    9.         ".jpg",
    10.         ".JPG",
    11.         ".png",
    12.         ".PNG"
    13.     );
    14.     $imgext = strrchr($_FILES['foto']['name'], ".");
    15.     $imgname = $_FILES['foto']['name'];
    16.     $imgsize = $_FILES['foto']['size'];
    17.     $imgtemp = $_FILES['foto']['tmp_name'];
    18.     if (!in_array($imgext, $image_types)) {
    19.         redirect(FUSION_SELF."?status=error_img");
    20.         die;
    21.     } elseif (is_uploaded_file($imgtemp)){
    22.         move_uploaded_file($imgtemp, $afolder.$imgname);
    23.         chmod($afolder.$imgname,0644);
    24.         die;
    25.     }
    26.  
    27.     }
    Вопрос: как сделать так, чтобы если файл не выбран, оно ничего не выполняло, а то isset($foto) и $foto != "" неработает =( почемуто всегда всёравно выполняет, странно...
     
  2. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    Это должно быть написано в теге form
    А что такое $_POST["foto"]? =) Подумайте.

    isset($_FILES)
     
  3. Sergey89

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

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    ?
     
  4. DarkElf

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

    С нами с:
    22 окт 2006
    Сообщения:
    1.632
    Симпатии:
    0
    AlexALX

    если так не можете без register_globals = On

    то в начало скрипта добавьте

    foreach($_REQUEST as $k=>$v){
    $$k=$v;
    }
     
  5. Sergey89

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

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    http://php.net/extract
     
  6. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    Sergey89
    Возможно, что это его функция.
     
  7. Sergey89

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

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    Я понимаю :) хотелось бы реализацию увидеть.
     
  8. AlexALX

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

    С нами с:
    13 июн 2007
    Сообщения:
    294
    Симпатии:
    5
    Адрес:
    Киев
    stripslashes

    Код (Text):
    1. function stripslash($text) {
    2.     if (QUOTES_GPC) $text = stripslashes($text);
    3.     return $text;
    4. }
     
  9. AlexALX

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

    С нами с:
    13 июн 2007
    Сообщения:
    294
    Симпатии:
    5
    Адрес:
    Киев
    $_POST["foto"] метот прописан.
    Код (Text):
    1. <form name='inputform' enctype='multipart/form-data' action='".FUSION_SELF."' method='post'><table align='center' cellspacing='0' cellpadding='0' class='tbl' width='450'>
     
  10. AlexALX

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

    С нами с:
    13 июн 2007
    Сообщения:
    294
    Симпатии:
    5
    Адрес:
    Киев
    Код (Text):
    1. if (isset($_FILES['foto']) && $_FILES['foto'] != "") {
    - непомогает =(
     
  11. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
  12. AlexALX

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

    С нами с:
    13 июн 2007
    Сообщения:
    294
    Симпатии:
    5
    Адрес:
    Киев
    Спасибо запомощь... Я Это Знаю, и Там нифига не написано про то что если поле не заполнено ничего не делал, тоесть if ($_POST...
     
  13. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    if (isset($_FILES["foto"]["tmp_name"])) ...
     
  14. shreck

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

    С нами с:
    7 авг 2007
    Сообщения:
    479
    Симпатии:
    0
    Адрес:
    Россия, Саратов
    +10
     
  15. orange

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

    С нами с:
    10 май 2007
    Сообщения:
    25
    Симпатии:
    0
    я обычно проверяю наличие файла в системе
    PHP:
    1.  
    2. <?php
    3. if (file_exists($_FILES['file_name_form']['tmp_name'])) {
    4.   // ...
    5. }
    6. ?>
    7.  
    если его нет, то значит либо файл не был выбран, либо его размер превысил лимит upload_max_filesize