<?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 => 'de',
  ),
  'this' => 
  array (
    0 => 'features.file-upload.multiple.php',
    1 => 'Upload mehrerer Dateien',
    2 => 'Upload mehrerer Dateien',
  ),
  'up' => 
  array (
    0 => 'features.file-upload.php',
    1 => 'Steuerung von Dateiuploads',
  ),
  'prev' => 
  array (
    0 => 'features.file-upload.common-pitfalls.php',
    1 => 'H&auml;ufige Probleme',
  ),
  'next' => 
  array (
    0 => 'features.file-upload.put-method.php',
    1 => 'PUT-Unterst&uuml;tzung',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'de',
    '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.multiple" class="sect1">
   <h2 class="title">Upload mehrerer Dateien</h2>
   <p class="simpara">
    Mehrere Dateien können hochgeladen werden, indem Sie verschiedene Namen
    <code class="literal">name</code> für <code class="literal">input</code> verwenden.
   </p>
   <p class="simpara">
    Es ist ebenfalls möglich, mehrere Dateien simultan hochzuladen, und die
    Informationen automatisch in Arrays zu erhalten. Um dies zu tun, verwenden
    Sie in dem HTML-Formular die gleiche Array-Sende-Syntax wie bei
    Auswahllisten mit Mehrfachauswahl und Checkboxen:
   </p>
   <p class="para">
    <div class="example" id="example-1">
     <p><strong>Beispiel #1 Hochladen mehrerer Dateien</strong></p>
     <div class="example-contents">
<div class="htmlcode"><pre class="htmlcode">&lt;form action=&quot;file-upload.php&quot; method=&quot;POST&quot; enctype=&quot;multipart/form-data&quot;&gt;
  Send these files:&lt;br&gt;
  &lt;input name=&quot;userfile[]&quot; type=&quot;file&quot;&gt;&lt;br&gt;
  &lt;input name=&quot;userfile[]&quot; type=&quot;file&quot;&gt;&lt;br&gt;
  &lt;input type=&quot;submit&quot; value=&quot;Send files&quot;&gt;
&lt;/form&gt;</pre>
</div>
     </div>

    </div>
   </p>
   <p class="simpara">
    Wenn das obige Formular übermittelt ist, werden die Arrays
    <var class="varname"><a href="reserved.variables.files.php" class="classname">$_FILES['userfile']</a></var>,
    <var class="varname"><a href="reserved.variables.files.php" class="classname">$_FILES['userfile']['name']</a></var> und
    <var class="varname"><a href="reserved.variables.files.php" class="classname">$_FILES['userfile']['size']</a></var> initialisiert.
   </p>
   <p class="simpara">
    Nehmen wir zum Beispiel an, dass die Dateinamen
    <var class="filename">/home/test/review.html</var> und
    <var class="filename">/home/test/xwp.out</var> übermittelt wurden. In diesem Fall
    würde <var class="varname"><a href="reserved.variables.files.php" class="classname">$_FILES['userfile']['name'][0]</a></var>
    <var class="filename">review.html</var> enthalten und
    <var class="varname"><a href="reserved.variables.files.php" class="classname">$_FILES['userfile']['name'][1]</a></var> hätte den Wert
    <var class="filename">xwp.out</var>. Genauso würde
    <var class="varname"><a href="reserved.variables.files.php" class="classname">$_FILES['userfile']['size'][0]</a></var> die Dateigröße von
    <var class="filename">review.html</var> enthalten, usw.
   </p>
   <p class="simpara">
    <var class="varname"><a href="reserved.variables.files.php" class="classname">$_FILES['userfile']['name'][0]</a></var>,
    <var class="varname"><a href="reserved.variables.files.php" class="classname">$_FILES['userfile']['tmp_name'][0]</a></var>,
    <var class="varname"><a href="reserved.variables.files.php" class="classname">$_FILES['userfile']['size'][0]</a></var> und
    <var class="varname"><a href="reserved.variables.files.php" class="classname">$_FILES['userfile']['type'][0]</a></var> sind ebenfalls gesetzt.
   </p>
   <div class="warning"><strong class="warning">Warnung</strong>
    <p class="simpara">
     Die Option
     <a href="ini.core.php#ini.max-file-uploads" class="link">max_file_uploads</a> setzt ein
     Limit auf die Anzahl der Dateien, welche in einer Anfrage hochgeladen
     werden können. Sie müssen sicherstellen, dass ihr Formular nicht erlaubt,
     mehr Dateien hochzuladen als dieses Limit.
    </p>
   </div>
   <p class="para">
    <div class="example" id="example-2">
     <p><strong>Beispiel #2 Hochladen eines kompletten Verzeichnisses</strong></p>
     <div class="example-contents"><p>
      In den HTML-Feldern zum Hochladen von Dateien ist es mit dem Attribut
      <code class="literal">webkitdirectory</code> möglich, ein ganzes Verzeichnis
      hochzuladen. Diese Funktion wird von den meisten modernen Browsern
      unterstützt.
     </p></div>
     <div class="example-contents"><p>
      Mit der Angabe <code class="literal">full_path</code> ist es möglich, die
      relativen Pfade zu speichern, oder das gleiche Verzeichnis auf dem
      Server zu rekonstruieren.
     </p></div>
     <div class="example-contents">
<div class="htmlcode"><pre class="htmlcode">&lt;form action=&quot;file-upload.php&quot; method=&quot;post&quot; enctype=&quot;multipart/form-data&quot;&gt;
  Dieses Verzeichnis hochladen:&lt;br /&gt;
  &lt;input name=&quot;userfile[]&quot; type=&quot;file&quot; webkitdirectory multiple /&gt;
  &lt;input type=&quot;submit&quot; value=&quot;Dateien abschicken&quot; /&gt;
&lt;/form&gt;</pre>
</div>
     </div>

    </div>

    <div class="warning"><strong class="warning">Warnung</strong>
     <p class="simpara">
      Das Attribut <code class="literal">webkitdirectory</code> ist nicht standardisiert
      und gehört nicht zu den Standards. Es sollte nicht auf Websites
      verwendet werden, die mit dem Internet verbunden sind: Es wird nicht bei
      jedem Benutzer funktionieren. Außerdem kann es große Inkompatibilitäten
      zwischen Implementierungen geben, und das Verhalten kann sich in Zukunft
      ändern.
     </p>
     <p class="simpara">
      PHP analysiert nur die relativen Pfadinformationen, die vom
      Browser/User-Agenten übermittelt werden, und übergibt diese
      Informationen an das Array <var class="varname"><a href="reserved.variables.files.php" class="classname">$_FILES</a></var>. Es gibt keine
      Garantie, dass die Werte im Array <code class="literal">full_path</code> eine
      echte Verzeichnisstruktur enthalten, weshalb die PHP-Anwendung diesen
      Informationen nicht vertrauen darf.
     </p>
    </div>
   </p>
  </div><?php manual_footer($setup); ?>