2017-05-07 85 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']; 
    } 
} 

?>