2

以下のフォームを使用して、サーバーに複数の画像をアップロードしました。

<form name="addimageForm" id="addimageForm" method="post" action="" enctype="multipart/form-data">              
    Gallery Image: 
    <input name="image_name[]" type="file" id="image_name" multiple="true">
    <input type="submit" name="addCatImage"/>
</form>

しかし、データベースに複数の画像を挿入できるように、ループする方法がわかりません。以下のコードを使用しました。実行すると、画像を選択しても、テーブルに4行が挿入されます。すべての配列フィールド(名前、サイズ、tmp_name)を挿入していると思います。どうすれば問題を解決できますか?

foreach ($_FILES[image_name] as $file) {
    $access->uploadSubCatImages();
}
4

3 に答える 3

1

PHPは、属性自体を配列にします。ええ、誰がそれを決めたのかわかりません。

// PHP does this:
$_FILES['image_name']['name'] = array('file1', 'file2', 'file'3);
$_FILES['image_name']['type'] = array('...', ...);

http://www.php.net/manual/en/features.file-upload.multiple.php

于 2013-01-22T22:18:57.070 に答える
0

$_FILESは多次元です。使用した構文を使用すると、ファイル名にアクセスできるようになります。

$_FILES['image_name']['name'][0] # for the first one
$_FILES['image_name']['name'][1] # for the second one

等々。複数のファイルのアップロードを参照するためのリンクは次のとおりです

于 2013-01-22T22:22:28.377 に答える
0

まず、$_FILES配列のインデックスは文字列です。PHPはそれを「食べて」E_NOTICEをスローしますが、実行しないでください。'image_name'代わりに使用してください。(引用符に注意してください)

また、配列構造は、予想したものとは異なる場合があります。たとえば、以下はファイルのテーマをループします。

foreach ($_FILES['image_name']['name'] as $filename) {
    // do work here
}

のドキュメント$_FILES、特にこのドキュメントページを参照してください。

于 2013-01-22T22:15:18.337 に答える