2011-10-19 41 views
0

私はクライアント用のシンプルなCMSを構築しています。従業員プロファイルを管理する能力が必要です。PHP - 複数のファイルをアップロード

各プロファイルにはイメージが必要です。

現在、従業員を追加するフォームがあり、アップロードされた画像を1つのレコードに関連付けるのは簡単です。

レコード追加フォームの下に、既存のレコードのリスト(および画像のサムネイル)があります。これらのレコードはフォームタグの間に表示され、各レコードの横にチェックボックスが表示されます(フォームの送信時に削除されます)。

このフォームを使用してレコードを更新したいと思います。削除が最初に発生すると、$_POSTデータが解析され、更新が記録されます。

レコードに画像が関連付けられていない場合、サムネイルではなくファイル入力タグが印刷されます。可変数のレコードがあるので、ファイルタグの名前はすべてimage[]となり、簡単にループできます。

質問:$_FILESのデータと$_POSTのデータをどのように関連付けるのですか?ファイルがどのレコードに属しているかを判断するには、各ファイル入力にimage_<?=$record_id?>という名前を付ける必要がありますか?

答えて

0

代わりの

<input name="image[]"> 

使用assocative配列、例:

<input name="image[id_<?=$record_id?>]"> 
1

あなたのソリューションはよさそうだために、私は元のために、インデックスとしてレコードIDを追加します。

image[<?=$record_id?>]; 

次に、配列インデックスで相関させることができます

0

デフォルトのfieldname[]表記を使用すると、PHPがPOST/GET/REQUEST/FILESでサーバサイドの表現に割り当てるインデックスを制御することはできません。 PHPはそれらを順番に追加するだけで、フォームにギャップがあると、データがサーバーにヒットした後にそのギャップがなくなります。

FORCEインデックスを使用すると、fieldname[7]newimage[7]はすべてフォームの同じフィールドセットに関連します。

0

各ファイルの名前を入力し、$FILES['unique_name']でアクセスする必要があります。