0

1 つのフォーム投稿で 2 つのファイルをアップロードしようとしていますが、フォームは最初のファイルのみをアップロードし、2 番目のファイルを反復してアップロードしません。理由はありますか?私が使用しているコードは以下のとおりです。

<?php

$upload = $_POST['upload'];
$enteredPassword = $_POST['password'];
$uploadedFiles = $_FILES;
$password = "************";

// Where the file is going to be placed 
$target_path = "";

//interger count
$i = 0;

//upload the files
if ($upload == true && $enteredPassword == $password) {
foreach($uploadedFiles as $uploadedFile) {
    $target_path = $target_path . $uploadedFile['name'][$i]; 

    if(move_uploaded_file($uploadedFile['tmp_name'][$i], $target_path)) {
        echo "<p>The file ".  $uploadedFile['name'][$i]. 
        " has been uploaded.</p>";
    } else{
        echo "<p>There was an error uploading the {$uploadedfile['name']}, please try again!</p>";
    }
    $i++;
}
}
?>

<ul>
<form enctype="multipart/form-data" action="" method="post">
    <input type="hidden" name="upload" value="true" />
    <li>Choose a file to upload:</li>
    <li><input name="userfile[]" type="file" size="40" /></li>
    <li><input name="userfile[]" type="file" size="40" /></li>
    <li>Enter password for file upload:</li>
    <li><input name="password" type="password" size="40" /></li>
    <li><input type="submit" value="Upload File" /></li>
</form>
</ul> 
4

3 に答える 3

0

必要に応じて、このプラグインを使用して複数の画像をアップロードできます。それは私にとって素晴らしい働きをします... http://www.plupload.com/example_queuewidget.php

于 2012-06-01T03:44:48.577 に答える
0

試してみて、uploadify 素晴らしい API とコールバックを使用して、複数のアップロードに適しています。 http://www.uploadify.com/

于 2012-06-01T03:55:42.413 に答える
0

$_FILES 配列には $_FILES["userfile"] という要素が 1 つしかないため、この動作は予期されたものです。あなたが望むものを達成するために、このようなことを試すことができます:

<?php
if(isset($_POST["submit"]))
{
    $upload = $_POST['upload'];
    $enteredPassword = $_POST['password'];
    $uploadedFiles = $_FILES["userfile"];
    $password = "12345";

    // Where the file is going to be placed 
    $base_path = "upload/";

    //upload the files
    if ($upload == true && $enteredPassword == $password) {
        foreach(array_combine($uploadedFiles["name"], $uploadedFiles["tmp_name"]) as $name => $tmp_name) {
            $target_path = $base_path .$name; 

            if(move_uploaded_file($tmp_name, $target_path)) {
                echo "<p>The file ".  $name." has been uploaded.</p>";
            }
            else
            {
                echo "<p>There was an error uploading the {$name}, please try again!</p>";
            }
        }
    }
}
?>

<ul>
<form enctype="multipart/form-data" action="" method="post">
    <input type="hidden" name="upload" value="true" />
    <li>Choose a file to upload:</li>
    <li><input name="userfile[]" type="file" /></li>
    <li><input name="userfile[]" type="file" /></li>
    <li>Enter password for file upload:</li>
    <li><input name="password" type="password" size="40" /></li>
    <li><input type="submit" name="submit" value="Upload File" /></li>
</form>
</ul> 
于 2012-06-01T14:17:50.747 に答える