У меня есть форма HTML, в которой публикуются значения формы и файлы загружаются в PHP для обработки. Одна из проверок, которую я хочу сделать, заключается в получении общего размера всех загруженных файлов. Этот код, приведенный ниже, работает нормально, если ни одно из значений в массиве размеров не равно 0, но если любое из них равно 0 (что происходит, когда ввод файла оставлен пустым), то сумма всегда выводится как 0 по какой-то причине.
Код:
if (!empty($_FILES['attachment'])) { //If there are attachments
$count = count($_FILES['attachment']['name']);
if ($count > 0) {
for ($i = 0; $i < $count; $i ++) {
if (!empty($totalFileSize)){
$totalFileSize = 0;
}
//Total File Size
if ($_FILES["attachment"]["size"][$i] != 0){
$totalFileSize += ($_FILES["attachment"]["size"][$i]);
}
}
$message = $totalFileSize;
}
//Checks
if ($totalFileSize > 20971520){
$fileSizeError = 1;
}
}
echo ''; print_r($_FILES['attachment']); echo '
'; echo $ totalFileSize; Выход();
Вывод:
Array
(
[name] => Array
(
[0] => Image Today at 10_02_27.JPG
[1] =>
)
[type] => Array
(
[0] => image/jpeg
[1] =>
)
[tmp_name] => Array
(
[0] => /tmp/phpfJo8Fl
[1] =>
)
[error] => Array
(
[0] => 0
[1] => 4
)
[size] => Array
(
[0] => 982518
[1] => 0
)
)
0
Я не могу понять, почему дополнительный в for для l oop работает нормально, если нет 0, но не когда есть.