2011-01-02 17 views
1

私は複数の画像アップローダーを作ろうとしています。ファイルアップロードフィールドは、jqueryを使用してフォームに動的に追加されます。私は隠されたフィールドを持っていないので、フィールドの配列を作ってみました。ので、私の生成アップロードフィールドは複数のファイルをアップロードするにはどうすればよいですか?

<input type="file" id="img0" name="img[]"/> 
<input type="file" id="img1" name="img[]"/> 
<input type="file" id="img2" name="img[]"/> 
..... 
.. 

のように見えるとPHP側で私は今、私はそのコードで、私は「IMGをループしておりますので、私は、あまりにも間違っている

if(isset($_FILES['img'])) 
{ 
    foreach($_FILES['img'] as $k=>$v) 
    { 
     if($v!="") 
     { 
      uploadImage($k,0,0,0,"content/gallery/"); 
     } 
    } 
} 

のようなものを知っていました'ファイルのプロパティをすべての画像の代わりに....しかし、私はこれをどのように修正するか分かりません。

PS:uploadImageは、ファイル入力フィールドの名前を最初のパラメータとして想定した関数です。

+0

は、あなたのuploadImage機能 – Ross

+1

を投稿あなたはどのように$ _FILESを把握するために、 '

を'使用しました配列は構造化されている? – Oswald

+0

「img []」ではなく「img1、img2」などとします –

答えて

-1

代わりにユニークな名前を使用して、代わりに$ _FILESをループするのはなぜですか?私はあなたが他のファイルを投稿しないと仮定しています...

それ以外の場合は、ファイルオブジェクトのプロパティを反復処理しているので、代わりにインデックス付きの通常のforループを試してみてください。また、あなたは$キーではなく、アップロード機能に$キーを渡しています。私はそれが1つの明白な間違いであると推測しています。念のために

$target_path = 'uploads/'; 

foreach($_FILES as $file) { 
    $target_path = $target_path . basename($file['name']); 

    if(move_uploaded_file($file['tmp_name'], $target_path)) { 
     echo 'The file '. basename($file['name']). ' has been uploaded'; 
    } else{ 
     echo 'There was an error uploading the file, please try again!'; 
    } 
} 

-1

は、あなたのような何かを行うことはできません

がフォームにENCTYPE = "multipart/form-data" を追加することを忘れないでください。

+0

私は何をねじにしましたか?アップ? – PeeHaa

+0

私はアソシエイトキーが足りないと思う(私にはあなたに票を下さない) – ajreal

+0

私は、彼らが有効なポイントであっても、問題を修正しないすべてのものをdownvotingしていると思っている。 $ _FILESを繰り返し実行するのと同じ提案をしました。なぜなら、処理されるべきではない他のファイルをポストしたり、説明なしにdownvotedしたりしているからです。 – jishi

0
$rtn = array(); 
foreach ($_FILES['img'] as $key=>$val) 
{ 
    foreach ($val as $fkey=>$fval) 
    { 
    $rtn[$fkey][$key] = $fval; 
    } 
} 
print_r($rtn); 
1

あなたは近いですが、$ _FILESの構造は本当に直感的で種類の後方1が期待するかもしれないものからではありません。あなたの関数にアップロードされたファイルの名前を送信するには、この操作を行います。最後にまあ

if (isset($_FILES['img'])) { 
    print_r($_FILES) // Just to see the $_FILES array's structure (testing only) 
    foreach ($_FILES['img']['name'] as $k => $v) {  // 'name' is an array 
     if ($v != '') {         // Each value of $v is a file name 
      uploadImage($v, 0, 0, 0, 'content/gallery/'); // Change $k in your code to $v 
     } 
    } 
} 
-1

を私がアップロードされている画像の総数を渡すために非表示の入力フィールドを使用し、それらの名前

を使用してそれらをアップロードyeh私は配列の使用をあきらめました.....この配列のアプローチは、それが価値があるよりはるかに多くの作業でした。

+0

私は同意しない、あなたはそれを回避してより多くの仕事に終わるだろう。 $ _FILES配列構造を理解するのは簡単です。 – GZipp