За последние 24 часа нас посетили 18098 программистов и 1589 роботов. Сейчас ищут 1078 программистов ...

Загрузка файла

Тема в разделе "PHP для новичков", создана пользователем mart-akm, 10 дек 2007.

  1. mart-akm

    mart-akm Активный пользователь

    С нами с:
    29 ноя 2007
    Сообщения:
    11
    Симпатии:
    0
    Здравствуйте! Я закачиваю файлы на сервер через форму. Возникла такая проблема: закачка ограничивается апачем до 2 Мб с носа, меня это очень даже устраивает. Но! Возникла такая проблема, когда я пытаюсь закачать файл размеров более 2Мб, то никак не могу отловить ошибку, чтобы сообщить пользователю, что надо бы файл сделать размером поменьше перез закачкой, подскажите как это решить.
    $_FILES['userfile']['size'] - не помогает....
     
  2. EvelRus

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

    С нами с:
    16 ноя 2006
    Сообщения:
    2.168
    Симпатии:
    0
    Адрес:
    Москва
    А что конкретно вы пытаетесь этим сделать???
    PHP:
    1. If (){}
    2. else{}
     
  3. Sergey89

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

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

    mart-akm Активный пользователь

    С нами с:
    29 ноя 2007
    Сообщения:
    11
    Симпатии:
    0
    Вот, что я пытаюсь
    //Загрузка нелскольких файлов
    $path=GetCWD()."\zakaz";
    // Проверяем на существование папку $path
    if(!file_exists($path))
    echo 'Пожалуйста, создайте папку '.$path.'и повторите попытку загрузить файл. <br><br>';
    for ($i=0; $i<count($text); $i++)
    {
    if (!empty($_FILES["text"]["tmp_name"][$i])) //проверяем на наличе в поле формы
    {
    if ($_FILES["text"]["size"][$i]<(1024*1024*1.99))//Ограничиваем размер закачиваемых фалов до 2Мб
    {
    if(!is_uploaded_file($_FILES['text']['tmp_name'][$i])) echo 'Файл не был загружен на сервер! Попробуйте повторить попытку';
    // Если файл удачно загружён на сервер, делаем вот что...
    else
    {
    // Переносим загружённый файл в папку $path
    if(@copy($_FILES['text']['tmp_name'][$i],$path."/".$_FILES['text']['name'][$i]))
    echo 'Файл '.$_FILES['text']['name'][$i].'загружен, размер='.$_FILES["text"]["size"][$i].'<br><br>';
    // Если не удалось перенести файл, выводим ошибку:
    else echo'Файл не был загружен! Попробуйте повторить попытку';
    }
    }
    else echo'Размер файла более 2Мб. Измените размер файла и повторите попытку.';
    }
    }
     
  5. mart-akm

    mart-akm Активный пользователь

    С нами с:
    29 ноя 2007
    Сообщения:
    11
    Симпатии:
    0
    Вот я нашла именно то, что нужно....но не могу понять, что за глобальный массив:$_SERVER['CONTENT_LENGTH'] ?

    As said before if POST size exceeds server limit then $_POST and $_FILES arrays become empty. You can track this using $_SERVER['CONTENT_LENGTH'].
    For example:

    <?php
    $POST_MAX_SIZE = ini_get('post_max_size');
    $mul = substr($POST_MAX_SIZE, -1);
    $mul = ($mul == 'M' ? 1048576 : ($mul == 'K' ? 1024 : ($mul == 'G' ? 1073741824 : 1)));
    if ($_SERVER['CONTENT_LENGTH'] > $mul*(int)$POST_MAX_SIZE && $POST_MAX_SIZE) $error = true;
    ?>
     
  6. mart-akm

    mart-akm Активный пользователь

    С нами с:
    29 ноя 2007
    Сообщения:
    11
    Симпатии:
    0
    На помощь! Не могу разобраться как поймать ошибку из масса:
    $_FILES['userfile']['error'] нужна ошибка
    UPLOAD_ERR_INI_SIZE
    Значение: 1; Размер принятого файла превысил максимально допустимый размер, который задан директивой upload_max_filesize конфигурационного файла php.ini.

    Вот тут пыталась разобраться http://ru2.php.net/manual/ru/features.f ... errors.php
    но никак не получается...объясните,пожалуста!