-3

いくつかのファイルをディレクトリにアップロードするためのアップロード スクリプトがあります。すべてのファイルがループを通過し、サイズまたは末尾にエラーがあるかどうかがチェックされます。エラーがなければアップロードされます。

if (is_array($_FILES ['image'] ['tmp_name'])) {
    foreach ( $_FILES ['image'] ['tmp_name'] as $key => $val ) {
        ...

        if (! in_array ( $fileExt, $allowedExtensions )) {
            $errors [$fileName] [] = "format not accepted";
        }...

            if ((count ( $errors1 ) == 0) && (count ( $errors ) === 0))  {
               if (move_uploaded_file ( $fileTemp, $fileDst )) {
                //...                               
            }
        }   
     }
}

私の質問は、そのループを正常に実行したアップロードされたファイルの数をカウントする方法はありますか? どうもありがとう。

4

2 に答える 2

2

成功したアップロードごとにカウントする必要があります。

以下のように:

   if (is_array($_FILES ['image'] ['tmp_name'])) {
    $Counter=0;     // initialize counter variable
        foreach ( $_FILES ['image'] ['tmp_name'] as $key => $val ) {

            $fileName = $_FILES ['image'] ['name'] [$key];
            $fileSize = $_FILES ['image'] ['size'] [$key];
            $fileTemp = $_FILES ['image'] ['tmp_name'] [$key];

            $fileExt = pathinfo ( $fileName, PATHINFO_EXTENSION );
            $fileExt = strtolower ( $fileExt );

            if (empty ( $fileName ))
            continue;

            if (! in_array ( $fileExt, $allowedExtensions )) {
                $errors [$fileName] [] = "format not accepted";
            }...

                if ((count ( $errors1 ) == 0) && (count ( $errors ) === 0))  {
                   if (move_uploaded_file ( $fileTemp, $fileDst )) {
                    //...           
                   $Counter++;       // increment if successful upload
                }
            }   
         }
    }

echo $Counter;  //it will give total count of successfully uploaded files
于 2012-04-19T17:10:07.507 に答える
1

カウンター変数を使用するだけです。move_uploaded_filetrue が返されたら、ファイルが正常にアップロードされたことを理解していますよね?

$counter = 0;
//... your code
if ((count ( $errors1 ) == 0) && (count ( $errors ) === 0))  {
    if (move_uploaded_file ( $fileTemp, $fileDst )) {
        $counter++;
        //... some other code
    }
}

したがって、foreachループ$counterを終了すると、期待値が得られます。

于 2012-04-19T17:11:51.080 に答える