<?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 => 'zh',
  ),
  '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' => 'zh',
    '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> 设置的值，不能大于 <var class="filename">php.ini</var> 文件
   设置中 <a href="ini.core.php#ini.upload-max-filesize" class="link">upload_max_filesize</a>
   选项设置的值。其默认值为 2M 字节。
  </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">
   鉴于文件路径的表示方法有很多种，我们无法确保用使用各种外语的文件名（尤其是包含空格的）能够被正确的处理。
  </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); ?>