-1

さて、ちょっと問題があります。HTML5 の複数ファイル アップロード属性を使用して、複数のファイルをアップロードしています。各アップロードをループするためにphpを使用しています。アップロードされているファイルのすべてのファイル サイズの合計が 0 より大きい場合にのみ、foreach ループを実行したいのですが、どうすればよいですか。

私が試してみました:

$file_test= $_FILES['uploads']['size']['0'];

if ($file_test != 0) {
   // code to run
}

ただし、これは最初のファイルのみをテストします。

ありがとう!

4

5 に答える 5

1
$totalSize = 0;
foreach ($_FILES['uploads']['size'] as $key => $val) {
    $totalSize += $val;
}
if ($totalSize > 0) {
    echo 'Execute stuff.';
}
于 2013-01-26T15:32:28.163 に答える
0

これは基本的な PHP です。ループを使用します。

$file_test = 0;
$num_files = count($_FILES);
for ($i = 0; $i < $num_files; $i++) {
    $file_test += $_FILES['uploads']['size'][$i];
}

if ($file_test != 0) {
   // code to run
}
于 2013-01-26T15:31:09.090 に答える
0

ファイル名配列全体をループして合計を見つける必要があります。

$totalSize = 0;
foreach ($_FILES['uploads']['name'] as $key => $value) {
    $totalSize += $_FILES['uploads']['size'][$key];
}
于 2013-01-26T15:32:03.863 に答える
0

実際、PHP のドキュメントには、複数のファイルのアップロードの処理に関する大きな記事があります。ここで読むことができます。ただし、あなたの問題については、次のように $_FILES 配列をループすることをお勧めします。

for($x=0;$x<count($_FILES);$x++) {
     // Do whatever with $_FILES['uploads']['size'][$x]
}
于 2013-01-26T15:32:53.743 に答える
0

したがって、あなたのフォームでは、次のようなものになります

<input type="file" name="uploads[]" />
<input type="file" name="uploads[]" />
<input type="file" name="uploads[]" />
...

次に、PHPでファイルを取得できます

$file_test= $_FILES['uploads']['size'][0]; // for the first file
$file_test= $_FILES['uploads']['size'][1]; // for the second file
...

一重引用符を失います

それはトリックを行う必要があります、

ウェジー

于 2013-01-26T15:33:31.727 に答える