2017-05-07 88 views
0

我有文件類型輸入。使用索引數組上傳文件

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

上傳後我試圖打印變量數據。

print_r($_FILES); 

打印數組內容後,它顯示每個FILES數組值內的file0索引。 它輸出我作爲

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 
      ) 

    )) 

我想這樣的陣列 -

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

如果我錯了,以獲得所需的陣列?

回答

0

它的預期輸出爲默認的PHP functionality..however您可以編寫自定義函數來消毒的形式排列,你要象下面這樣:

<?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; 
} 

?> 

然後u能做到以下幾點:

<?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']; 
    } 
} 

?>