2011-06-07 9 views
1

私はPHPを初めて使い、次のような結果をどのように得ることができるのだろうかと思います。複数ファイルアップロードの問題

私は、複数のファイルをアップロードするためのHTMLフォームを持っています(PDFのみ)。最大5つのファイルを指定できます。 各ファイルには、異なるユーザーを選択するための選択タグ(DBから取得)と、別の月の別の選択タグがあります。理想的には、ユーザーがファイルを1つずつ選択し、途中のファイルをスキップしない限り、複雑ではありません。

<input type=file name=pdf[] /> 
<select name=user[]> 
    <option value=a>user a</option> 
    <option value=b>user b</option> 
    <option value=c>user c</option> 
</select> 
<select name=month[]> 
    <option value=jan> jan </option> 
       . 
       . 
       . so on 
</select> 

例:

File1.pdf --- UserA --- Jan 
File2.pdf --- UserB --- Feb 
Not choose --- 
File4.pdf --- UserA --- Mar 
Not choose --- 

私はsubmitをクリックすると、データはここで複数のアレイ、$_POSTから1、$_FILESから別のものが含まれているので、どのように私はrecontructとにこれらの配列を組み合わせることができます新しい配列を作成し、空の配列を削除します。

のように:事前に

Array(
[0]=> Array(user=>userA, month=>Jan, filename=>File1.pdf, type=>application/pdf, size=>1234456) 
[1]=> Array(user=>userB, month=>Feb, filename=>File2.pdf, type=>application/pdf, size=>1234456) 
[2]=> Array(user=>userA, month=>Mar, filename=>File4.pdf, type=>application/pdf, size=>1234456) 
) 

ありがとう!

答えて

-1

ちょうどあなたのフィールドより良い名前を与える:それからちょうど結果にファイルを再結合

result[0][user]result[0][month]result[0][pdf]
result[1][user]result[1][month]result[1][pdf]

を:

$results = $_POST['result']; 
foreach ($results as $i => &$result) { 
    if (isset($_FILES['result'][$i]['pdf']) && is_array($_FILES['result'][$i]['pdf'])) { 
     $result = array_merge($result, $_FILES['result'][$i]['pdf']); 
    } 
} 
+0

こんにちは、ありがとうご即答。私はursとして変更しますが、2番目の引数については問題がありません;配列:( – jasper

+0

@ jasper更新を参照してください。あなたのニーズに合わせてこれをさらにカスタマイズする必要があります。 – deceze

関連する問題