2017-05-07 1 views
0

Ich habe Dateityp-Eingabe.Datei-Upload mit Index-Array

<input name="maintenance_request[file0]" type="file"> 

Nach dem Hochladen versuche ich die variablen Daten zu drucken.

Nach dem Drucken für Array-Inhalt zeigt es den file0-Index in jedem Array-Wert FILES. Es Ausgang mich als

Array(
[maintenance_request] => Array 
    (
     [name] => Array 
      (
       [file0] => 44.jpg 
      ) 

     [type] => Array 
      (
       [file0] => image/jpeg 
      ) 

     [tmp_name] => Array 
      (
       [file0] => C:\wamp\tmp\phpB2C6.tmp 
      ) 

     [error] => Array 
      (
       [file0] => 0 
      ) 

     [size] => Array 
      (
       [file0] => 42923 
      ) 

    )) 

Ich möchte Array wie folgt -

Array(
    [maintenance_request] => Array(
      [file0] => Array(
       [name] => 44.jpg 
       [type] => image/jpeg 
       [tmp_name] => C:\wamp\tmp\phpFBF8.tmp 
       [error] => 0 
       [size] => 42923 
      ) 
    ) 
) 

Wo bin ich falsch das gewünschte Array zu bekommen?

Antwort

0

Es ist der erwartete Ausgang für Standard-PHP-functionality..however Sie benutzerdefinierte Funktion Sanitizer das Array in untenstehende Formular aus, wie Sie wollen schreiben:

<?php 

function reArrayFiles(&$file_post) { 

    $file_ary = array(); 
    $file_count = count($file_post['name']); 
    $file_keys = array_keys($file_post); 

    for ($i=0; $i<$file_count; $i++) { 
        foreach ($file_keys as $key) { 
            $file_ary[$i][$key] = $file_post[$key][$i]; 
        } 
    } 

    return $file_ary; 
} 

?> 

Dann kann u Folgendes tun:

<?php 

if ($_FILES['upload']) { 
    $file_ary = reArrayFiles($_FILES['ufile']); 

    foreach ($file_ary as $file) { 
        print 'File Name: ' . $file['name']; 
        print 'File Type: ' . $file['type']; 
        print 'File Size: ' . $file['size']; 
    } 
} 

?>