1

複数の画像アップローダーをセットアップしようとしていますが、20 を超えるファイルをアップロードしようとすると、最初の 20 ファイルしかアップロードされません。

続行する前に、php.ini の max_file_uploads が 400 に設定されているとだけ言いたいので、非常によく似た質問に対する他の回答は私の問題を解決していないようです。

私の完全なコードは以下のとおりです。私は mysql_query を使用していることを知っていることに注意してください。ただし、これはローカルでのテストのみを目的としています。

-

PHP

if(isset($_POST['upload'])){
    include("SimpleImage.php");

    echo count($_FILES['file']['name']);

    for($i=0; $i<count($_FILES['file']['name']); $i++) {

        $allowedExts = array("gif", "jpeg", "jpg", "png", "JPG");
        $extension = end(explode(".", $_FILES["file"]["name"][$i]));

        date_default_timezone_set('Europe/London');
        $date = date_create();

        if ((($_FILES["file"]["type"][$i] == "image/gif")
        || ($_FILES["file"]["type"][$i] == "image/jpeg")
        || ($_FILES["file"]["type"][$i] == "image/jpg")
        || ($_FILES["file"]["type"][$i] == "image/png"))
        && ($_FILES["file"]["size"][$i] < 10485760)
        && in_array($extension, $allowedExts)){
            $name = date_timestamp_get($date) . "_" . mt_rand() . "." . $extension;

            if ($_FILES["file"]["error"][$key] > 0){
                $messages[] = "Return Code: " . $_FILES["file"]["error"][$i] . "<br>";
            }else{
                $imagethumbTrueLocation = "../../gallery/thumb/" . $name;
                $imagelargeTrueLocation = "../../gallery/photos/" . $name;

                $imagethumb = new SimpleImage();
                $imagethumb->load($_FILES["file"]["tmp_name"][$i]);
                $imagethumb->resizeToWidth(230);
                $imagethumb->save($imagethumbTrueLocation);

                $imagethumblocation = "thumb/" . $name;

                $imagelarge = new SimpleImage();
                $imagelarge->load($_FILES["file"]["tmp_name"][$i]);
                $imagelarge->resizeToWidth(800);
                $imagelarge->save($imagelargeTrueLocation);

                $imagelargelocation = "photos/" . $name;

                $queryresult = mysql_query("INSERT INTO gallery (thumbnail, highres) VALUES ('$imagethumblocation', '$imagelargelocation')") or die(mysql_error());
                if(!$queryresult) {
                    $messages[] = "Failed to insert record into the database.";
                }else{
                    $messages[] = "Record sucessfully added to the database.";
                }
            }
        }else{
            $messages[] = "Invalid file";
        }
    }

}

HTML

<form action="#" method="post" enctype="multipart/form-data">
    <input type="file" name="file[]" id="file" multiple>
    <input type="submit" name="upload" value="Upload" />
</form>
4

4 に答える 4

0

Wamp を使用している場合は、localhost ページに移動し、phpinfo(); をクリックします。左下隅にあります。そうでない場合は、php ファイルで関数を使用できます。

php.iniを見つけるための「ロードされた構成ファイル」列

複数の php.ini があるため (1 つは php フォルダーにあり、もう 1 つは apach フォルダーにあります)。完了したら、phpinfo() で再度確認できます。CTRL + F を押して「max_file_uploads」を探します。

それが役立つことを願っています。

于 2014-12-09T21:27:12.093 に答える
0

php.ini 構成ファイルを開き、;単一のリクエストでアップロードできるファイルの最大数 max_file_uploads = Apache が POST イベントで処理するファイルの数に変更します。デフォルト値は 20 です。

于 2017-11-07T14:08:06.987 に答える