<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/features.file-upload.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'ru',
  ),
  'this' => 
  array (
    0 => 'features.file-upload.common-pitfalls.php',
    1 => 'Распространённые подводные камни',
    2 => 'Распространённые подводные камни',
  ),
  'up' => 
  array (
    0 => 'features.file-upload.php',
    1 => 'Загрузка файлов на сервер',
  ),
  'prev' => 
  array (
    0 => 'features.file-upload.errors.php',
    1 => 'Объяснение сообщений об ошибках',
  ),
  'next' => 
  array (
    0 => 'features.file-upload.multiple.php',
    1 => 'Загрузка нескольких файлов',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'ru',
    'path' => 'features/file-upload.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="features.file-upload.common-pitfalls" class="sect1">
   <h2 class="title">Распространённые подводные камни</h2>
   <p class="simpara">
    Элементу <code class="literal">MAX_FILE_SIZE</code> нельзя указывать размер файла,
    который превышает предел, который установили в директиве
    <a href="ini.core.php#ini.upload-max-filesize" class="link">upload_max_filesize</a> файла <var class="filename">php.ini</var>.
    Ограничение по умолчанию составляет 2 мегабайта.
   </p>
   <p class="simpara">
    Если установили ограничения памяти, может потребоваться
    увеличение значения опции <a href="ini.core.php#ini.memory-limit" class="link">memory_limit</a>.
    Убедитесь, что значение директивы <a href="ini.core.php#ini.memory-limit" class="link">memory_limit</a>
    достаточно.
   </p>
   <p class="simpara">
    Время, которое потребуется для работы скрипта, может превысить
    значение опции <a href="info.configuration.php#ini.max-execution-time" class="link">max_execution_time</a>,
    если для директивы установили маленькое значение.
    Убедитесь, что значение директивы <code class="literal">max_execution_time</code> достаточно.
   </p>
   <blockquote class="note"><p><strong class="note">Замечание</strong>: 
    <span class="simpara">
     Директива <a href="info.configuration.php#ini.max-execution-time" class="link">max_execution_time</a>
     влияет только на время выполнения самого скрипта.
     Время, которое заняли действия за пределами скрипта, — системные вызовы
     функций <span class="function"><a href="function.system.php" class="function">system()</a></span> или <span class="function"><a href="function.sleep.php" class="function">sleep()</a></span>, запросы
     к базе данных, время, которое заняла загрузка файла на сервер, и т. д. —
     не учитывается при определении максимального времени работы скрипта.
    </span>
   </p></blockquote>
   <div class="warning"><strong class="warning">Внимание</strong>
    <p class="simpara">
     Директива <a href="info.configuration.php#ini.max-input-time" class="link">max_input_time</a> устанавливает
     максимальное время в секундах, в течение которого скрипту разрешается получать входные данные;
     время загрузки файла тоже включается. Загрузка больших файлов, набора файлов
     или обработка запросов пользователей с медленными соединениями может превысить значение по умолчанию
     в <code class="literal">60</code> секунд.
    </p>
   </div>
   <p class="simpara">
    Сервер не загрузит большие файлы, если
    для директивы <a href="ini.core.php#ini.post-max-size" class="link">post_max_size</a>
    установили слишком маленькое значение.
    Проверьте, что значение директивы <code class="literal">post_max_size</code> достаточно.
   </p>
   <p class="simpara">
    Опция
    <a href="ini.core.php#ini.max-file-uploads" class="link">max_file_uploads</a>
    контролирует максимальное количество файлов, которые загружают на сервер в течение
    одного запроса. Суперглобальный массив <var class="varname"><a href="reserved.variables.files.php" class="classname">$_FILES</a></var>
    прекратит обработку файлов, как только достигнет ограничения,
    если загружается больше файлов, чем в ограничении.
    Например, если значение директивы
    <a href="ini.core.php#ini.max-file-uploads" class="link">max_file_uploads</a> равняется
    <code class="literal">10</code>, массив <var class="varname"><a href="reserved.variables.files.php" class="classname">$_FILES</a></var> не будет
    содержать больше 10 элементов.
   </p>
   <p class="simpara">
    Без проверки того, с каким файлом ведётся работа, пользователи смогут
    получить доступ к конфиденциальной информации других каталогов.
   </p>
   <p class="simpara">
    Из-за многообразия стилей, в которых файловые системы ведут список каталогов,
    PHP не гарантирует правильную обработку файлов с экзотическими именами,
    например файлов с пробелами в именах.
   </p>
   <p class="simpara">
    Разработчикам нельзя смешивать обычные <code class="literal">input</code>-поля и поля загрузки файлов
    в одной и той же переменной формы (например, нельзя указывать в имени <code class="literal">input</code>-элемента
    значение <code class="literal">foo[]</code>).
   </p>
  </div><?php manual_footer($setup); ?>