2017-05-07 12 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

それはあなたが以下のようにしたい形式で配列消毒剤にカスタム関数を書くことができfunctionality..howeverデフォルトのPHPの予想出力です:

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

?> 
関連する問題