Heim  >  Artikel  >  Backend-Entwicklung  >  So implementieren Sie mehrere Datei-Uploads in PHP

So implementieren Sie mehrere Datei-Uploads in PHP

伊谢尔伦
伊谢尔伦Original
2017-06-24 14:58:461617Durchsuche

Tatsächlich ähneln mehrere Datei-Uploads den einzelnen Datei-Uploads, und die Prinzipien sind dieselben Erstens handelt es sich immer noch um das Upload-Formular „index.html“, aber um die Datei im vorherigen Das Datei-Upload-Formular wird in Datei[ ] geändert

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
    <title>upload files</title>
</head>
<body>
    <form action="upload.php" enctype="multipart/form-data" method="post">
        <input type="hidden" name="MAX_FILE_SIZE" value="100000" />
        上传文件:<input type="file" name="file[]"/><br/>
        上传文件:<input type="file" name="file[]"/><br/>
        上传文件:<input type="file" name="file[]"/><br/>    
        <input type="submit" value="上传" />
    </form>
</body>
</html>

Verwenden Sie $_FILES, um in upload.php auszudrucken und einen Blick darauf zu werfen

<?php  
  print_r($_FILES); 
?>

Das Folgende wird erhalten Mehrdimensionales Array

Array
(
    [file] => Array
        (
            [name] => Array
                (
                    [0] => 照片1.jpg
                    [1] => 照片2.jpg
                    [2] => 照片3.jpg
                )
            [type] => Array
                (
                    [0] => image/jpeg
                    [1] => image/jpeg
                    [2] => image/jpeg
                )
            [tmp_name] => Array
                (
                    [0] => F:\wamp\tmp\php36C7.tmp
                    [1] => F:\wamp\tmp\php36C8.tmp
                    [2] => F:\wamp\tmp\php36C9.tmp
                )
            [error] => Array
                (
                    [0] => 0
                    [1] => 0
                    [2] => 0
                )
            [size] => Array
                (
                    [0] => 0
                    [1] => 0
                    [2] => 0
                )
        )
)

Überlegen Sie nach dem Prinzip des Hochladens einer einzelnen Datei zunächst, was wir benötigen?

Natürlich benötigen wir ein Array mit Dateiinformationen. Das Array enthält Name, Typ, tmp_name, Fehler und Größe. Zu diesem Zeitpunkt erhalten wir ein mehrdimensionales Array ​​​​existieren, Es ist mehrdimensional. Für die drei oben genannten Dateien müssen wir es beispielsweise nur in die entsprechenden drei Dateiinformationsarrays aufteilen.

Die Struktur des geteilten Arrays

Das Folgende ist der Code zum Teilen und Neuorganisieren des Arrays
Array
(
    [0] => Array
        (
            [name] => 照片1.jpg
            [type] => image/jpeg
            [tmp_name] => F:\wamp\tmp\php13C1.tmp
            [error] => 0
            [size] => 385150
        )
    [1] => Array
        (
            [name] => 照片2.jpg
            [type] => image/jpeg
            [tmp_name] => F:\wamp\tmp\php13D2.tmp
            [error] => 0
            [size] => 242043
        )
    [2] => Array
        (
            [name] => 照片3.jpg
            [type] => image/jpeg
            [tmp_name] => F:\wamp\tmp\php13D3.tmp
            [error] => 0
            [size] => 488293
        )
)

Der Rest ist einfach, wiederholen Sie die Schritte von Laden Sie eine einzelne Datei hoch. Durchlaufen und verarbeiten Sie das Array einfach einmal.
<?php    
    //print_r($_FILES[&#39;file&#39;]);
    $arr=$_FILES[&#39;file&#39;];
    $files=array();
    for($i=0;$i<count($arr[&#39;name&#39;]);$i++){
        $files[$i][&#39;name&#39;]=$arr[&#39;name&#39;][$i];
        $files[$i][&#39;type&#39;]=$arr[&#39;type&#39;][$i];
        $files[$i][&#39;tmp_name&#39;]=$arr[&#39;tmp_name&#39;][$i];
        $files[$i][&#39;error&#39;]=$arr[&#39;error&#39;][$i];
        $files[$i][&#39;size&#39;]=$arr[&#39;size&#39;][$i];
    }
    print_r($files);
?>

Der Code lautet wie folgt:

Das obige ist der detaillierte Inhalt vonSo implementieren Sie mehrere Datei-Uploads in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn